فهرست منبع

上线政策-已发版

朱鑫波 3 سال پیش
والد
کامیت
90345ce8c2

+ 1 - 1
.env.development

@@ -14,7 +14,7 @@ VUE_APP_BASE_SCRIPT_URL = http://192.168.0.195:31013
 
 
 #素材大盘相关接口
-VUE_APP_BASE_MATERIAL_URL = http://192.168.0.195:9999/material
+VUE_APP_BASE_MATERIAL_URL = http://api.tjyourong.com.cn/material
 # 字安接口 http://192.168.1.43:9999
 # 测试环境 http://192.168.0.195:9999
 # 西安环境 http://192.168.1.59:7006

+ 2 - 2
src/views/dashboard/managerStatistics.vue

@@ -1354,8 +1354,8 @@ export default {
                             this.completePercent = 100
                         } else {
                             this.completePercent =
-                                (parseFloat(res.result.totalConsume) / parseFloat(res.result.targetValue)).toFixed(2) *
-                                100
+                                ((parseFloat(res.result.totalConsume) / parseFloat(res.result.targetValue)).toFixed(2) *
+                                100).toFixed(2)
                         }
 
                         this.totalConsume = parseFloat(res.result.totalConsume)

+ 1 - 1
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -1375,7 +1375,7 @@
                             <a-radio-group v-model="adposition" @change="adpositionChange">
                                 <a-radio-button :value='1'>优选广告位</a-radio-button>
                                 <a-radio-button value="inventoryTypes">按媒体指定位置</a-radio-button>    
-                                <a-radio-button :value='5' :disabled="getData('openProgramCreate')==1">联盟广告</a-radio-button>
+                                <a-radio-button :value='5'>联盟广告</a-radio-button>
                             </a-radio-group>
                         </a-form-item>
                         <div style="width: 400px; margin-top: 24px;" class="inventoryTypes" v-show="adposition=='inventoryTypes'">

+ 2 - 2
src/views/modules/kuaishouapp/batchCreation/creat/creatUnit.vue

@@ -957,7 +957,7 @@
           </a-col> -->
         </a-row>
           
-        <ul v-if="dataSource.length > 0" style="overflow: auto; padding-left: 0">
+        <ul v-if="dataSource.length > 0" style="overflow: auto; padding-left: 0;margin-top:10px">
           <a-checkbox-group v-model="checkVideo" style="width: 100%" @change="setData">
             <li v-for="(item, index) of dataSource" :key="index" class="chouzhen" style="height: 400px">
               <!-- <video class="video" :src="item.url" controls="controls" style="width:100%">
@@ -1493,7 +1493,7 @@ export default {
       params.materialType =this.creativeMaterialType 
       if(this.mediaDimension == 'a'){
         url = '/kuaishou/kuaiShouVideoGet/getBatchV2VideoList'
-        // params.signatures = this.md5Str
+        params.signatures = this.md5Str
         if (this.time.length > 0) {
           // params.startDate = moment(this.time[0]).format('YYYY-MM-DD')
           // params.endDate = moment(this.time[1]).format('YYYY-MM-DD')

+ 1 - 1
src/views/modules/policy-management/policy-management-server.js

@@ -7,5 +7,5 @@
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
 //  export const urlAcount = 'http://192.168.1.43:9999'; // 子安
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
-//  export const urlAcount = 'http://192.168.1.8:9999'; // 学超
+//  export const urlAcount = 'http://192.168.0.195:9999'; // 学超
  

+ 183 - 35
src/views/modules/policy-management/policy-management.vue

@@ -1,3 +1,29 @@
+<style scoped>
+::v-deep .ant-steps-dot .ant-steps-item-content{
+    width: auto;
+}
+::v-deep .ant-steps-dot .ant-steps-item-active .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot{
+    background: rgb(11, 190, 135);
+    width: 15px;
+    height: 15px;
+    /* margin-top: 5px; */
+    margin-left: 2px;
+}
+::v-deep .endStatus .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot{
+    background: #1890ff !important;
+    width: 15px;
+    height: 15px;
+    /* margin-top: 5px; */
+    /* margin-left: 2px; */
+
+}
+::v-deep .ant-steps-dot .ant-steps-item-icon {
+    width: 15px;
+    height: 15px;
+    margin-top: 5px;
+    margin-left: -4px;
+}
+</style>
 <template>
     <div class="policy-management-content">
         <div class="control-con-title">
@@ -6,13 +32,14 @@
             </div>
             <div>
                 <span v-if="userInfo().roleName == '管理员'
+                ||userInfo().roleName == '销售总监'
                 ||userInfo().id == '7fb2684c348341d193727e791c75dbeb'
                 ||userInfo().id == '1cd4c769eabb4de98fed306de2a3bbbd'
                 ||userInfo().id == '388e787edd294ecfb9243fe176a3ae56'
                 ||userInfo().id == 'a8c0a3d4df4f4b7083107a429b5391df'" class="add-acount-policy-btn">
                     <a-button @click="handleAddSale">销售对应人员</a-button>
                 </span>
-                <span v-if="userInfo().roleName !== '财务'" class="add-acount-policy-btn">
+                <span v-if="userInfo().roleName !== '财务' && userInfo().roleName != '法务'" class="add-acount-policy-btn">
                     <a-button type="primary" @click="handleAddAccountPolicy">新增政策</a-button>
                 </span>
             </div>
@@ -96,7 +123,7 @@
                             <a-select-option
                                 v-for="item in allSaleListOption"
                                 :key="item.saleId"
-                                :value="item.saleName"
+                                :value="item.saleId"
                             >
                                 {{ item.saleName }}
                             </a-select-option>
@@ -173,8 +200,8 @@
                 <span slot="isDianPay" slot-scope="text">
                     <span>{{ calculationScope(text) }}</span>
                 </span>
-                <span slot="updateApprovedStatus" slot-scope="text">
-                    <a>{{ text }}</a>
+                <span slot="updateApprovedStatus" slot-scope="text, records">
+                    <a @click="showLog(records)">{{ text }}</a>
                 </span>
                 <span slot="dianPayCompanyName" slot-scope="text">
                     <span>{{ text ? text : '-' }}</span>
@@ -200,6 +227,16 @@
                     </a-tooltip>
                     
                 </span>
+                <span slot="legalAffairsContent" slot-scope="text">
+                     <a-tooltip>
+                        <template slot="title" v-if="text">
+                        {{text}}
+                        </template>
+                        <span class="line-table-width">{{ text ? text : '-' }}</span>
+                    </a-tooltip>
+                    
+                </span>
+                
                 <span slot="action" slot-scope="text, record">
                     <a v-if="record.updateOperation.includes('查看')" @click="handleDetail(record)">操作</a>
                     <a-divider v-if="record.updateOperation.includes('提交审核')" type="vertical"/>
@@ -223,6 +260,7 @@
                 size="small"
                 show-size-changer
                 show-quick-jumper
+                v-model="tablePag.page"
                 @change="handleOnShowSizeChange"
                 @showSizeChange="handleOnShowSizeChange"
             />
@@ -239,7 +277,7 @@
             <div>
                 <span class="audit-policy-icon" @click="handleModeCancel"><a-icon type="close"/></span>
                 <div class="reason-class-header">审核不通过的理由:</div>
-                <div class="reason-class-content">{{ rejectionReasonList.approvalContent }}</div>
+                <div class="reason-class-content" style="overflow: auto;">{{ rejectionReasonList.approvalContent }}</div>
                 <div solt="footer" class="audit-policy-footer">
                     <div></div>
                     <div>
@@ -287,7 +325,7 @@
                         </div>
                         <div class="policy-line-left">
                             <span class="line-left-spn">销售:</span>
-                            <span class="line-right-spn">{{ queryByIdList.createUserName }}</span>
+                            <span class="line-right-spn">{{ queryByIdList.saleName }}</span>
                         </div>
                         <div class="policy-line-left">
                             <span class="line-left-spn">区域:</span>
@@ -344,13 +382,22 @@
                             <span class="line-right-spn">{{ queryByIdList.policyStartDate }} 至 {{ queryByIdList.policyEndDate }}</span>
                         </div>
                         <div class="policy-line-right">
+                            <span class="line-left-spn">是否老客户:</span>
+                            <span class="line-right-spn">{{ queryByIdList.customerFlag === 0 ? '否' : '是' }}</span>
+                        </div>
+                        <div class="policy-line-right">
                             <span class="line-left-spn">备注:</span>
                             <span class="line-right-spn-else">{{ queryByIdList.remarks || '-' }}</span>
                         </div>
+                        <div class="policy-line-right" v-if="queryByIdList.theForwardingBossContent ">
+                            <span class="line-left-spn">转审原因:</span>
+                            <span class="line-right-spn-else">{{ queryByIdList.theForwardingBossContent  || '-' }}</span>
+                        </div>
                         <div class="policy-line-right" v-if="queryByIdList.theBossContent">
-                            <span class="line-left-spn">领导审核原因:</span>
+                            <span class="line-left-spn">老板审核意见:</span>
                             <span class="line-right-spn-else">{{ queryByIdList.theBossContent || '-' }}</span>
                         </div>
+                        
                          
                     </div>
                 </div>
@@ -368,18 +415,19 @@
         <!-- 审核拒绝 -->
         <a-modal
             v-if="rejectAuditStatus"
-            title="审核不通过"
+            :title="userInfo().roleName != '法务'?userInfo().roleName == '管理员'?'审核':'审核不通过':'法务审核'"
             dialog-class="rejection-reason-class"
             :visible="rejectAuditStatus"
             @ok="handleRejectSure"
             @cancel="handleRejectCancel"
         >
             <div>
-                <div class="reason-class-header">请输入审核不通过的理由:</div>
+                                    <!-- :rules="reasonRules" -->
+                <div class="reason-class-header">请输入{{userInfo().roleName != '法务'?userInfo().roleName == '管理员'?'审核理由':'审核不通过的理由':'风控建议'}}:</div>
                 <a-form-model
                     ref="rejectRuleForm"
                     :model="reasonForm"
-                    :rules="reasonRules"
+                    :rules="this.okType == 3?userInfo().roleName != '法务'?reasonRules:reasonRulesFawu:reasonRulesTongguo"
                 >
                     <a-form-model-item label="" prop="desc">
                         <a-input
@@ -408,7 +456,7 @@
                 <a-form-model
                     ref="rejectRuleForm"
                     :model="reasonForm"
-                    :rules="reasonRules"
+                    :rules="this.okType == 3?reasonRulesLeader:reasonRulesTongguo"
                 >
                     <a-form-model-item label="" prop="desc">
                         <a-input
@@ -507,10 +555,10 @@
                                 <a-select-option :value="8">头条内广</a-select-option>
                             </a-select>
                         </a-form-model-item>
-                        <a-form-model-item label="销售" prop="createUserId">
+                        <a-form-model-item label="销售" prop="saleId">
                             <!-- @change="showAreaInfo" -->
                             <a-select
-                                v-model="policyOperationForm.createUserId"
+                                v-model="policyOperationForm.saleId"
                                 style="width: 100px"
                                 show-search
                                 allow-clear
@@ -667,6 +715,16 @@
                                 @change="handleAddTimesChange"
                             />
                         </a-form-model-item>
+                        <a-form-model-item label="是否老客户" prop="isDianPay">
+                                <a-radio-group
+                                    v-model="policyOperationForm.customerFlag"
+                                    button-style="solid"
+                                >
+                                    <a-radio-button :value="1">是</a-radio-button>
+                                    <a-radio-button :value="0">否</a-radio-button>
+                                </a-radio-group>
+                            </a-form-model-item>
+                        
                         <a-form-model-item label="备注" prop="remarks">
                             <a-input
                                 v-model="policyOperationForm.remarks"
@@ -760,6 +818,28 @@
                 @change="handleCurrey"
             />
         </a-modal>
+
+        <!-- 操作记录 -->
+        <a-modal
+            v-if="logVisible"
+            title="操作记录"
+            :visible="logVisible"
+            @cancel="logVisible = false"
+            :footer="null"
+        > 
+            <div style="height:400px;overflow:auto;padding:15px">
+                <a-steps progress-dot direction="vertical" v-model="logActive" style="width:100%" disbaled>
+                    <a-step 
+                    :title="`${item.roleName}(${item.userName})${item.approvalStatus==1?'审核拒绝':item.approvalContent}`" 
+                    :description="`${item.createTime}`" 
+                    v-for="(item, index) in logList" :key="index" disabled
+                    :class="{'endStatus':logStatus == 3}"
+                    />
+                </a-steps>
+            </div>
+          
+
+        </a-modal>
     </div>
 </template>
 <script>
@@ -781,6 +861,10 @@ export default {
         return {
             confirmLoading: false,
             controlLoading: false,
+            logVisible: false,
+            logStatus:0,
+            logActive: 2,
+            logList: [],
             allSaleListOption: [],
             creativeMediaOptions: [
                 {
@@ -886,12 +970,13 @@ export default {
                         value: ''
                     }
                 ],
+                customerFlag:0,
                 companyName: '',
                 advancePay: 0,
                 advertiserName: '',
                 rebateType: undefined,
                 mediaType: 2,
-                createUserId: undefined,
+                saleId: undefined,
                 areaInfo: undefined,
                 companySubjectName: undefined,
                 promotionType: 1,
@@ -918,7 +1003,7 @@ export default {
                 ],
                 rebateType: [{required: true, message: '请选择返点类型', trigger: 'change'}],
                 mediaType: [{required: true, message: '请选择投放媒体', trigger: 'change'}],
-                createUserId: [{required: true, message: '请选择所属销售', trigger: 'change'}],
+                saleId: [{required: true, message: '请选择所属销售', trigger: 'change'}],
                 areaInfo: [{required: true, message: '请选择区域', trigger: 'change'}],
                 companySubjectName: [{required: true, message: '请选择我司主体', trigger: 'change'}],
                 rebateRate: [{required: true, message: '请输入返点比例', trigger: 'blur'}],
@@ -943,7 +1028,26 @@ export default {
                     { min: 5, max: 100, message: '请输入5-100个字符', trigger: 'blur' },
                 ]
             },
+            reasonRulesFawu: {
+                desc: [
+                    {required: true, message: '请输入风控建议', trigger: 'blur'},
+                    { min: 5, max: 500, message: '请输入5-500个字符', trigger: 'blur' },
+                ]
+            },
+            reasonRulesLeader:{
+                desc: [
+                    {required: true, message: '请输入推送领导审核理由', trigger: 'blur'},
+                    { min: 5, max: 100, message: '请输入5-100个字符', trigger: 'blur' },
+                ]
+            },
+            reasonRulesTongguo:{
+                desc: [
+                    {required: false, message: '', trigger: 'blur'},
+                    { min: 5, max: 100, message: '请输入5-100个字符', trigger: 'blur' },
+                ]
+            },
             dataSource: [],
+            okType:3,
             columns: [
                 {
                     title: '公司名称',
@@ -974,6 +1078,12 @@ export default {
                 },
                 {
                     title: '销售',
+                    dataIndex: 'saleName',
+                    align: 'center',
+                    width: 150
+                },
+                 {
+                    title: '创建人',
                     dataIndex: 'createUserName',
                     align: 'center',
                     width: 150
@@ -1047,6 +1157,14 @@ export default {
                     width: 220,
                     scopedSlots: {customRender: 'policyStartDate'}
                 },
+                
+                {
+                    title: '法务审核内容',
+                    align: 'center',
+                    dataIndex: 'legalAffairsContent',
+                    width: 190,
+                    scopedSlots: {customRender: 'legalAffairsContent'}
+                },
                 {
                     title: '备注',
                     align: 'center',
@@ -1423,6 +1541,22 @@ export default {
                 console.log(error, 'eeee');
             });
         },
+        showLog(item){
+            this.logVisible = true
+            this.logStatus = item.approvedStatus
+            getAction(urlAcount + '/finance/cwjsPolicyInfo/getPolicyApprovalLogByPolicyId', { policyId:item.id }).then(result => {
+                if (result.code === 0) {
+                    this.logList = result.result
+                    this.logActive = this.logList.length-1
+                }
+                else {
+                    this.$message.error(result.message);
+                }
+            }).catch(error => {
+                console.log(error, 'eeee');
+            }).finally(() => {
+            });
+        },
         // 获取默认的列表数据
         handleInitTable() {
             this.controlLoading = true;
@@ -1434,7 +1568,7 @@ export default {
                 mediaType: this.configForm.creativeMedia === 'no' ? '' : this.configForm.creativeMedia,
                 rebateType: this.configForm.creativeRebate === 'no' ? '' : this.configForm.creativeRebate,
                 dianPayCompanyName: this.configForm.creativeAdvance,
-                createUserName: this.configForm.creativeSale === 'no' ? '' : this.configForm.creativeSale,
+                saleId: this.configForm.creativeSale === 'no' ? '' : this.configForm.creativeSale,
                 promotionType: this.configForm.creativeOperate === 'no' ? '' : this.configForm.creativeOperate,
                 approvedStatus: this.configForm.searchStatus === 'no' ? '' : this.configForm.searchStatus,
                 startTime: this.configForm.time[0],
@@ -1460,6 +1594,7 @@ export default {
                 }
                 else {
                     this.dataSource = [];
+                    this.tablePag.page = 1;
                     this.totalAll = 0;
                     this.$message.error(result.message);
                 }
@@ -1611,22 +1746,24 @@ export default {
         // 新增政策按钮
         handleAddAccountPolicy() {
             this.addType = 'add';
-            this.policyOperationForm.createUserId = this.userInfo().id;
+            this.policyOperationForm.saleId = this.userInfo().id;
             this.policyOperationStatus = true;
         },
         // 新增政策确定按钮
         handlePolicyOperationSure() {
-            const {companyName, advancePay, advertiserName, rebateType, mediaType, defaultFormList, addTimes, createUserId, areaInfo, companySubjectName, promotionType, groupAbbreviation, rebateRate, accountingPeriod, isDianPay, dianPayCompanyName, dianPayCompanyRebateRate, remarks, id} = this.policyOperationForm;
+            const {companyName, advancePay, advertiserName, rebateType, mediaType, defaultFormList,customerFlag, addTimes, saleId, areaInfo, companySubjectName, promotionType, groupAbbreviation, rebateRate, accountingPeriod, isDianPay, dianPayCompanyName, dianPayCompanyRebateRate, remarks, id} = this.policyOperationForm;
             const paramsData = {
                 policyProductName: defaultFormList.map(item => item.value),
                 policyStartDate: addTimes[0],
                 policyEndDate: addTimes[1],
+                saleId,
                 companyName,
                 advancePay,
                 advertiserName,
                 rebateType,
                 mediaType,
-                createUserId,
+                createUserId:this.userInfo().id,
+                customerFlag,
                 areaInfo,
                 companySubjectName,
                 promotionType,
@@ -1684,7 +1821,7 @@ export default {
                 advertiserName: '',
                 rebateType: undefined,
                 mediaType: 2,
-                createUserId: undefined,
+                saleId: undefined,
                 areaInfo: undefined,
                 companySubjectName: undefined,
                 promotionType: 1,
@@ -1695,17 +1832,19 @@ export default {
                 dianPayCompanyName: '',
                 dianPayCompanyRebateRate: '',
                 addTimes: [],
-                remarks: ''
+                remarks: '',
+                customerFlag: 0
             },
             this.policyOperationStatus = false;
         },
         // 审核拒绝确定按钮
         handleRejectSure() {
             this.$refs.rejectRuleForm.validate(valid => {
+                console.log(valid)
                 if (valid) {
                     const params = {
                         id: this.tableOnlyId || this.queryByIdList.id,
-                        type: 3,
+                        type: this.okType,
                         value: this.reasonForm.desc
                     };
                     this.handleExamineAll(params);
@@ -1735,6 +1874,7 @@ export default {
         },
         // 审核拒绝取消按钮
         handleRejectCancel() {
+            this.okType = 3
             this.reasonForm.desc = '';
             this.rejectAuditStatus = false;
             this.toLeaderVisible = false
@@ -1750,22 +1890,30 @@ export default {
         },
         // 查看-审核政策-审核通过-按钮
         handleAuditSure(list) {
-            let that = this;
-            this.$confirm({
-                title: '提示',
-                content: '确认该政策审核通过',
-                onOk() {
-                    const params = {
-                        id: list.id || that.queryByIdList.id,
-                        type: 2,
-                        value: ''
-                    };
-                    that.handleExamineAll(params);
-                }
-            });
+            if(this.userInfo().roleName == '法务' || this.userInfo().roleName == '管理员'){
+                this.okType = 2
+                this.rejectAuditStatus = true;
+                this.tableOnlyId = list.id;
+            }else{
+               let that = this;
+                this.$confirm({
+                    title: '提示',
+                    content: '确认该政策审核通过',
+                    onOk() {
+                        const params = {
+                            id: list.id || that.queryByIdList.id,
+                            type: 2,
+                            value: ''
+                        };
+                        that.handleExamineAll(params);
+                    }
+                });
+            }
+            
         },
         // 查看-审核政策-审核拒绝-按钮
         handleAuditCancel(data) {
+            this.okType = 3
             this.rejectAuditStatus = true;
             this.tableOnlyId = data.id;
         },

+ 1 - 1
src/views/modules/settlement-account/settlement-account-server.js

@@ -7,5 +7,5 @@
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
 // export const urlAcount = 'http://192.168.1.43:9999'; // 子安
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
-// export const urlAcount = 'http://192.168.1.8:9999'; // 学超
+// export const urlAcount = 'http://192.168.0.195:9999'; // 学超
  

+ 1 - 1
src/views/modules/settlement-information/settlement-information-server.js

@@ -7,5 +7,5 @@
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
 //  export const urlAcount = 'http://192.168.1.43:9999'; // 子安
 //  export const urlAcount = 'http://gateway.tjyourong.com.cn'; // 测试
-// export const urlAcount = 'http://192.168.1.8:9999'; // 学超
+// const urlAcount = 'http://192.168.0.195:9999'; // 学超
  

+ 1 - 1
vue.config.js

@@ -105,7 +105,7 @@ module.exports = {
         // target: 'http://192.168.1.43:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.1.43:8806', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.0.252:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
-        // target: 'http://192.168.1.59:7701', //请求本地 需要jeecg-boot后台项目  赵西安
+        // target: 'http://192.168.1.59:7006', //请求本地 需要jeecg-boot后台项目  赵西安
         // target: 'http://192.168.1.193:8080', //请求本地 需要jeecg-boot后台项目  李煜一
         // target: 'http://192.168.1.193:31012', //请求本地 需要jeecg-boot后台项目  李煜一
         // target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目