Просмотр исходного кода

Merge branch 'mergeBranch' into orangeUrgent

qymljy 2 лет назад
Родитель
Сommit
78dbfed1dc
35 измененных файлов с 582 добавлено и 332 удалено
  1. 39 12
      src/HDrpManagement/contractManage/components/addContract.vue
  2. 41 12
      src/HDrpManagement/contractManage/components/editContract.vue
  3. 2 0
      src/HDrpManagement/customerData/index.vue
  4. 1 1
      src/HDrpManagement/orderManage/index.vue
  5. 16 0
      src/HDrpManagement/projectChange/modules/modules/contacts/index.vue
  6. 3 1
      src/HDrpManagement/projectData/index.vue
  7. 16 0
      src/HDrpManagement/publicCustomer/modules/detail/contacts/list.vue
  8. 8 8
      src/HDrpManagement/rebatesettlement/index.vue
  9. 16 3
      src/HDrpManagement/rebatesettlement/modules/add.vue
  10. 21 6
      src/HDrpManagement/rebatesettlement/modules/edit.vue
  11. 4 2
      src/HManagement/task/modules/add.vue
  12. 4 2
      src/HManagement/task/modules/edit.vue
  13. 6 3
      src/SDrpManagement/QuotedPrice/detail/index.vue
  14. 13 13
      src/SDrpManagement/agentOrder/index.vue
  15. 7 7
      src/SDrpManagement/invoicePrediction/detail/customDetail.vue
  16. 17 16
      src/SDrpManagement/invoicePrediction/detail/orderDetail.vue
  17. 7 7
      src/SDrpManagement/invoicePrediction/detail/projectDetail.vue
  18. 43 5
      src/SDrpManagement/invoicePrediction/detail/subordinate.vue
  19. 0 106
      src/SDrpManagement/projectPrediction/detail/index.vue
  20. 11 11
      src/SDrpManagement/projectPrediction/detail/projectListDetail.vue
  21. 40 3
      src/SDrpManagement/projectPrediction/detail/subordinate.vue
  22. 3 3
      src/SDrpManagement/projectPrediction/modules/detailInfo.vue
  23. 3 3
      src/SDrpManagement/projectPrediction/modules/edit.vue
  24. 0 72
      src/SDrpManagement/projectPrediction/modules/editCopy.vue
  25. 15 15
      src/SDrpManagement/salerOrder/index.vue
  26. 16 0
      src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/list.vue
  27. 6 5
      src/SManagement/orderclue/index.vue
  28. 9 3
      src/api/request.js
  29. 1 1
      src/components/export_excel/index.vue
  30. 1 1
      src/components/socketMessage/index.vue
  31. 189 0
      src/template/prediction/addTemp1.vue
  32. 15 8
      src/views/mediaStatistics/modules/salesfunnel.vue
  33. 3 1
      src/views/salesData/components/allSalesTemplate.vue
  34. 3 1
      src/views/salesData/components/financialCollectionDetail.vue
  35. 3 1
      src/views/salesData/components/shippingUninvoiceDetail.vue

+ 39 - 12
src/HDrpManagement/contractManage/components/addContract.vue

@@ -44,7 +44,7 @@
             </el-col>-->
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -144,7 +144,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -249,7 +249,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -353,7 +353,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -573,12 +573,12 @@
             </el-col>
             <el-col :span="24" v-if="form.calculatemodel==1">
               <el-form-item label="订单金额比例(%):" prop="orderratio" >
-                <el-input type="number" size="small" v-model.number="form.orderratio"  placeholder="请输入0-100%" @change="orderratioChange"></el-input>
+                <el-input  size="small" v-model="form.orderratio"  placeholder="请输入0-100%" @change="orderratioChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24" v-if="form.calculatemodel==2">
               <el-form-item label="居间产品折扣(%):" prop="productdiscount">
-                <el-input type="number" size="small" v-model.number="form.productdiscount" placeholder="请输入0-100%" @change="productdiscountChange"></el-input>
+                <el-input size="small" v-model="form.productdiscount" placeholder="请输入0-100%" @change="productdiscountChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -630,7 +630,9 @@ export default {
       callback()
     }
     var NumberSize = (rule, value, callback) => {
-      if (+value > 100 || +value < 0 ) {
+      if (isNaN(parseFloat(value))){
+        return callback(new Error('输入不合法,请输入数值'))
+      }else if (+value > 100 || +value < 0 ) {
         return callback(new Error('折扣范围(0-100%)'));
       }
       callback()
@@ -734,13 +736,15 @@ export default {
           { required: true, message: '请设置发货日期提醒天数', trigger: 'blur' },
         ],
         productdiscount: [
-          { message: '必须为数字', type:'number', trigger: 'change' },
+        /*  { message: '必须为数字', type:'number', trigger: 'change' },*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
           { required: true, message: '请填写折扣', trigger: 'blur' },
        /*   { validator: checkNumber, trigger: 'blur'},*/
           { validator: NumberSize, trigger: 'blur'}
         ],
         orderratio: [
-          { message: '必须为数字', type:'number', trigger: 'change' },
+         /* { message: '必须为数字', type:'number', trigger: 'change' },*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
           { required: true, message: '请填写折扣', trigger: 'blur' },
         /*  { validator: checkNumber, trigger: 'blur'},*/
           { validator: NumberSize, trigger: 'blur'}
@@ -750,6 +754,7 @@ export default {
         ],
         discountrate: [
          /* { validator: checkNumber, trigger: 'blur'},*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
           { validator: NumberSize, trigger: 'blur'}
         ],
       },
@@ -856,6 +861,7 @@ export default {
   methods: {
     async onSubmit () {
       this.$refs.form.validate(async val => {
+        if (!val) return false
         console.log(this.form,'form')
         if (val) {
           this.$store.commit('setLoading',true)
@@ -886,7 +892,13 @@ export default {
                 "id":20221121185302,
                 "content": this.form
               })
+              if (res.code == 0){
+                this.form.discountrate = this.form.discountrate * 100
+                this.form.productdiscount = this.form.productdiscount * 100
+                this.form.orderratio = this.form.orderratio * 100
+              }
               this.tool.showMessage(res,() => {
+
                 this.$store.commit('setLoading',false)
                 console.log(res.data);
                 this.$store.dispatch('DrawerShowChange',false)
@@ -912,7 +924,13 @@ export default {
               "id":20221121185302,
               "content": this.form
             })
+            if (res.code == 0){
+              this.form.discountrate = this.form.discountrate * 100
+              this.form.productdiscount = this.form.productdiscount * 100
+              this.form.orderratio = this.form.orderratio * 100
+            }
             this.tool.showMessage(res,() => {
+
               this.$store.commit('setLoading',false)
               console.log(res.data);
               this.$store.dispatch('DrawerShowChange',false)
@@ -1166,13 +1184,22 @@ export default {
       console.log(this.payTypeData,'处理后数据')
     },
     discountrateChange(){
-      this.form.discountrate = Math.round(this.form.discountrate * 100)/100
+      let discountrate = parseFloat(this.form.discountrate)
+      if (!isNaN(discountrate)){
+        this.form.discountrate = Math.round(this.form.discountrate * 100)/100
+      }
     },
     orderratioChange(){
-      this.form.orderratio =  Math.round(this.form.orderratio * 100)/100
+      let orderratio = parseFloat(this.form.orderratio)
+      if (!isNaN(orderratio)){
+        this.form.orderratio =  Math.round(this.form.orderratio * 100)/100
+      }
     },
     productdiscountChange(){
-      this.form.productdiscount =  Math.round(this.form.productdiscount * 100)/100
+      let productdiscount = parseFloat(this.form.productdiscount)
+      if (!isNaN(productdiscount)){
+        this.form.productdiscount =  Math.round(this.form.productdiscount * 100)/100
+      }
     },
 
     /*获取客户负责人*/

+ 41 - 12
src/HDrpManagement/contractManage/components/editContract.vue

@@ -39,7 +39,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate">
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -139,7 +139,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -244,7 +244,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -348,7 +348,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="折扣(%):" prop="discountrate"  >
-                <el-input type="number" size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
+                <el-input  size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -576,12 +576,12 @@
             </el-col>
             <el-col :span="24" v-if="form.calculatemodel==1">
               <el-form-item label="订单金额比例(%):" prop="orderratio" >
-                <el-input type="number" size="small" v-model.number="form.orderratio" placeholder="请输入0-100%" @change="orderratioChange"></el-input>
+                <el-input  size="small" v-model.number="form.orderratio" placeholder="请输入0-100%" @change="orderratioChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24" v-if="form.calculatemodel==2">
               <el-form-item label="居间产品折扣(%):" prop="productdiscount">
-                <el-input type="number" size="small" v-model.number="form.productdiscount" placeholder="请输入0-100%" @change="productdiscountChange"></el-input>
+                <el-input  size="small" v-model.number="form.productdiscount" placeholder="请输入0-100%" @change="productdiscountChange"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -635,7 +635,9 @@ export default {
       callback()
     }
     var NumberSize = (rule, value, callback) => {
-      if (+value > 100 || +value <= 0 && value) {
+      if (isNaN(parseFloat(value))){
+        return callback(new Error('输入不合法,请输入数值'))
+      }else if (+value > 100 || +value <= 0 && value) {
         return callback(new Error('折扣范围(1-100%)'));
       }
       callback()
@@ -730,13 +732,15 @@ export default {
           { required: true, message: '请填写签约时间', trigger: 'change' },
         ],
         productdiscount: [
-          { message: '必须为数字', type:'number', trigger: 'change' },
+         /* { message: '必须为数字', type:'number', trigger: 'change' },*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
           { required: true, message: '请填写折扣', trigger: 'blur' },
           /*{ validator: checkNumber, trigger: 'blur'},*/
           { validator: NumberSize, trigger: 'blur'}
         ],
         orderratio: [
-          { message: '必须为数字', type:'number', trigger: 'change' },
+         /* { message: '必须为数字', type:'number', trigger: 'change' },*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
           { required: true, message: '请填写折扣', trigger: 'blur' },
          /* { validator: checkNumber, trigger: 'blur'},*/
           { validator: NumberSize, trigger: 'blur'}
@@ -746,6 +750,7 @@ export default {
         ],
         discountrate: [
          /* { validator: checkNumber, trigger: 'blur'},*/
+          { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
           { validator: NumberSize, trigger: 'blur'}
         ],
       },
@@ -870,6 +875,11 @@ export default {
                   "id":20221121185302,
                   "content": this.form
                 })
+                if (res.code == 0){
+                  this.form.discountrate = this.form.discountrate * 100
+                  this.form.productdiscount = this.form.productdiscount * 100
+                  this.form.orderratio = this.form.orderratio * 100
+                }
                 this.tool.showMessage(res,() => {
                   this.$store.commit('setLoading',false)
                   this.$refs.form.resetFields()
@@ -885,6 +895,11 @@ export default {
                 "id":20221121185302,
                 "content": this.form
               })
+              if (res.code == 0){
+                this.form.discountrate = this.form.discountrate * 100
+                this.form.productdiscount = this.form.productdiscount * 100
+                this.form.orderratio = this.form.orderratio * 100
+              }
               this.tool.showMessage(res,() => {
                 this.$store.commit('setLoading',false)
                 this.$refs.form.resetFields()
@@ -909,6 +924,11 @@ export default {
               "id":20221121185302,
               "content": this.form
             })
+            if (res.code == 0){
+              this.form.discountrate = this.form.discountrate * 100
+              this.form.productdiscount = this.form.productdiscount * 100
+              this.form.orderratio = this.form.orderratio * 100
+            }
             this.tool.showMessage(res,() => {
               this.$store.commit('setLoading',false)
               this.$refs.form.resetFields()
@@ -1118,13 +1138,22 @@ export default {
       console.log(this.payTypeData,'处理后数据')
     },
     discountrateChange(){
-      this.form.discountrate = Math.round(this.form.discountrate * 100)/100
+      let discountrate = parseFloat(this.form.discountrate)
+      if (!isNaN(discountrate)){
+        this.form.discountrate = Math.round(this.form.discountrate * 100)/100
+      }
     },
     orderratioChange(){
-      this.form.orderratio =  Math.round(this.form.orderratio * 100)/100
+      let orderratio = parseFloat(this.form.orderratio)
+      if (!isNaN(orderratio)){
+        this.form.orderratio =  Math.round(this.form.orderratio * 100)/100
+      }
     },
     productdiscountChange(){
-      this.form.productdiscount =  Math.round(this.form.productdiscount * 100)/100
+      let productdiscount = parseFloat(this.form.productdiscount)
+      if (!isNaN(productdiscount)){
+        this.form.productdiscount =  Math.round(this.form.productdiscount * 100)/100
+      }
     },
     /*获取客户负责人*/
     async queryCustomerLeader(id){

+ 2 - 0
src/HDrpManagement/customerData/index.vue

@@ -1011,6 +1011,7 @@ export default {
           "type": '',
           "dataid": '',
           "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "enddate":new Date().getFullYear() + '-' + (new Date().getMonth() + 1)  + '-' + new Date().getDate(),
           "dataType":"",// 默认为 客户类型
           "where": {
               "tradingstatus": "",//成交状态
@@ -1025,6 +1026,7 @@ export default {
           "type": '',
           "dataid": '',
           "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "enddate":new Date().getFullYear() + '-' + (new Date().getMonth() + 1)  + '-' + new Date().getDate(),
           "pageSize":20,
           "pageNumber":1,
           "where": {

+ 1 - 1
src/HDrpManagement/orderManage/index.vue

@@ -80,7 +80,7 @@
           </el-select>
         </div>
         <div class="mt-10">
-          <label class="search__label" >单据日期:</label>
+          <label class="search__label" >审核日期:</label>
           <el-date-picker
               style="margin-right: 24px !important;"
               size="small"

+ 16 - 0
src/HDrpManagement/projectChange/modules/modules/contacts/index.vue

@@ -28,6 +28,7 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
+          <el-button type="text" size="mini" class="inline-16" @click="goDetail(scope.data)">详 情</el-button>
           <edit  :data="scope.data" class="inline-16" @editSuccess="onSuccess" :disabled="data.disabled" :status="data.status"></edit>
           <delContact  :data="scope.data" @delSuccess="onSuccess" class="inline-16" :disabled="data.disabled" :status="data.status"></delContact>
         </template>
@@ -104,6 +105,21 @@ export default {
     },
     onSuccess(){
       this.listData()
+    },
+    goDetail(val){
+      this.$store.dispatch('changeDetailDrawer',false)
+      this.$nextTick(()=>{
+        let route = this.$route
+        if (route.path !== 'phonebookDetail') {
+          this.oldRoute = {path:route.path,query:route.query}
+          this.$store.dispatch('setHistoryRouter',this.oldRoute)
+        }
+        this.$router.push({
+          path:'/phonebookDetail',
+          query:{sa_project_contactsid:val.sa_project_contactsid}
+        })
+        this.$store.dispatch('changeDetailDrawer',true)
+      })
     }
   },
   mounted() {

+ 3 - 1
src/HDrpManagement/projectData/index.vue

@@ -1072,7 +1072,7 @@
               <div class="panel-header">
                 <div class="title">
                   项目生命周期分析
-                  <el-tooltip class="item" effect="dark" content="统计项目生命周期中的个关键节点之间平均周期" placement="top">
+                  <el-tooltip class="item" effect="dark" content="统计项目生命周期中的个关键节点之间平均周期" placement="top">
                     <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
                   </el-tooltip>
                 </div>
@@ -1492,6 +1492,7 @@ export default {
             "type": '',
             "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
             "dataid": '',
+            "enddate":new Date().getFullYear() + '-' + (new Date().getMonth() + 1)  + '-' + new Date().getDate(),
             "where": {
                 "projecttype":""
             }
@@ -1503,6 +1504,7 @@ export default {
           "type": '',
           "dataid": '',
           "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "enddate":new Date().getFullYear() + '-' + (new Date().getMonth() + 1)  + '-' + new Date().getDate(),
           "where": {
               "projecttype":"",
               "dateType":""

+ 16 - 0
src/HDrpManagement/publicCustomer/modules/detail/contacts/list.vue

@@ -24,6 +24,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
+        <el-button type="text" size="mini" class="inline-16" @click="goDetail(scope.data)">详 情</el-button>
         <edit v-if="tool.checkAuth($route.name,'contactManage')" :data="scope.data" :enterprisename="data.enterprisename"  @updateSuccess="onSuccess"></edit>
         <toVoid v-if="tool.checkAuth($route.name,'contactManage')" :data="scope.data" @toVoidSuccess="onSuccess"></toVoid>
       </template>
@@ -108,6 +109,21 @@ export default {
     queryClick(){
       this.params.content.where.condition = this.search
       this.listData()
+    },
+    goDetail(val){
+      this.$store.dispatch('changeDetailDrawer',false)
+      this.$nextTick(()=>{
+        let route = this.$route
+        if (route.path !== 'phonebookDetail') {
+          this.oldRoute = {path:route.path,query:route.query}
+          this.$store.dispatch('setHistoryRouter',this.oldRoute)
+        }
+        this.$router.push({
+          path:'/phonebookDetail',
+          query:{contactsid:val.contactsid}
+        })
+        this.$store.dispatch('changeDetailDrawer',true)
+      })
     }
   },
   mounted() {

+ 8 - 8
src/HDrpManagement/rebatesettlement/index.vue

@@ -1,13 +1,13 @@
 
 <template>
   <div>
-    <basicLayout 
-      ref="basicLayout" 
+    <basicLayout
+      ref="basicLayout"
       :oldFormPath="{
         add:'HDrpManagement/rebatesettlement/modules'
       }"
-      tableName="rebatesettlement" 
-      idName="sa_rebatesettlementid" 
+      tableName="rebatesettlement"
+      idName="sa_rebatesettlementid"
       :apiId="{query:20230104194002,del:20230104193402}"
       :options="options"
       :detailPath="{
@@ -51,15 +51,15 @@
  * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
  * @param {string} tableName 开发端配置的表格名称
  * @param {String} idName 数据主id名称
- * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
- * @param {Array} options:{label:描述,value:值} 
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
+ * @param {Array} options:{label:描述,value:值}
  */
 export default {
   data () {
     return {
       options:[],
       dateSelect:[]
-      
+
     }
   },
   mounted() {
@@ -82,4 +82,4 @@ export default {
 
 </script>
 <style>
-</style>
+</style>

+ 16 - 3
src/HDrpManagement/rebatesettlement/modules/add.vue

@@ -7,6 +7,7 @@
     direction="rtl"
     append-to-body
     :show-close="false"
+    @close="resetForm"
     size="900px">
     <div class="drawer__panel">
       <el-row :gutter="20">
@@ -47,7 +48,7 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input type="textarea" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
+              <el-input type="textarea" v-model="form.remarks" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
             </el-form-item>
           </el-col>
         </el-form>
@@ -67,7 +68,7 @@ import contractTemp from '@/template/rebateCanUseContract/index.vue'
 import orderTemp from '@/template/rebateCanUseOrder/index.vue'
 
 export default {
-  
+
   data() {
     var checkSacontractid = (rule, value, callback) => {
       if (!this.form.sys_enterpriseid) {
@@ -129,6 +130,7 @@ export default {
       const res = await this.$api.requested({"id": "20230104180102","content":this.form})
       this.tool.showMessage(res,()=>{
         this.drawer = false
+        this.$refs.form.resetFields()
         this.$emit('onSuccess')
       })
     },
@@ -154,7 +156,18 @@ export default {
     },
     resetForm () {
       this.$refs.ent.form = this.$refs.con.form = this.$refs.order.form = {}
+      this.$refs.form.resetFields()
+      this.form = {
+        "sa_rebatesettlementid": 0,
+            "sys_enterpriseid": "", //结算企业档案ID
+            "ownertable": "sa_order", //数据表
+            "ownerid": "", //数据id
+            "billdate": (new Date()).toISOString().split('T')[0], //结算日期
+            "remarks": "",
+            "sa_contractid": "", //居间合同ID
+            "settlementmode": "线上" //结算方式,线下、在线(在线时生成收入凭证)
+      }
     }
   }
 }
-</script>
+</script>

+ 21 - 6
src/HDrpManagement/rebatesettlement/modules/edit.vue

@@ -7,6 +7,7 @@
     direction="rtl"
     append-to-body
     :show-close="false"
+    @close="resetForm"
     size="900px">
     <div class="drawer__panel">
       <el-row :gutter="20">
@@ -47,7 +48,7 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input type="textarea" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
+              <el-input type="textarea" v-model="form.remarks" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
             </el-form-item>
           </el-col>
         </el-form>
@@ -125,12 +126,20 @@ export default {
     onShow () {
       this.drawer = true
       this.form = Object.assign({},this.form,this.data)
-      setTimeout(() => {
+      this.form.settlementmode = '线上'
+      this.form.remarks = ''
+      this.form.billdate = (new Date()).toISOString().split('T')[0]
+      this.$nextTick(()=>{
         this.$refs.ent.form.enterprisename = this.data.enterprisename
         this.$refs.con.form.title = this.data.billno_contract
         this.$refs.order.form.sonum = this.data.sonum
-      }, 500);
-      
+      })
+     /* setTimeout(() => {
+        this.$refs.ent.form.enterprisename = this.data.enterprisename
+        this.$refs.con.form.title = this.data.billno_contract
+        this.$refs.order.form.sonum = this.data.sonum
+      }, 500);*/
+
     },
     async submitForm() {
       this.$refs['form'].validate((valid) => {
@@ -163,8 +172,14 @@ export default {
       });
     },
     resetForm () {
-      this.$refs.ent.form = this.$refs.con.form = this.$refs.order.form = {}
+      /*this.$refs.ent.form = this.$refs.con.form = this.$refs.order.form = {}*/
+      this.$refs.ent.form.enterprisename = ''
+      this.$refs.con.form.title = ''
+      this.$refs.order.form.sonum = ''
+      this.form.settlementmode = '线上'
+      this.form.remarks = ''
+      this.form.billdate = (new Date()).toISOString().split('T')[0]
     }
   }
 }
-</script>
+</script>

+ 4 - 2
src/HManagement/task/modules/add.vue

@@ -73,7 +73,7 @@
             <el-col :span="24">
               <el-form-item label="执行人:" prop="leaderuserid">
                 <el-popover
-                    placement="right"
+                    placement="top"
                     trigger="manual"
                     width="400"
                     v-model="leaderShow">
@@ -86,7 +86,7 @@
             <el-col :span="24">
               <el-form-item label="协助人:" prop="remindday">
                 <el-popover
-                    placement="right"
+                    placement="top"
                     trigger="manual"
                     width="400"
                     v-model="assistShow">
@@ -270,6 +270,8 @@ export default {
       this.leader = {}
       this.assistPerson = ''
       this.assist = []
+      this.leaderShow = false
+      this.assistShow = false
       this.$refs.form.resetFields()
     },
     selectApplication(ownerid,ownertable,data){

+ 4 - 2
src/HManagement/task/modules/edit.vue

@@ -73,7 +73,7 @@
             <el-col :span="24">
               <el-form-item label="执行人:" prop="leaderuserid">
                 <el-popover
-                    placement="right"
+                    placement="top"
                     trigger="manual"
                     width="400"
                     v-model="leaderShow">
@@ -86,7 +86,7 @@
             <el-col :span="24">
               <el-form-item label="协助人:" prop="remindday">
                 <el-popover
-                    placement="right"
+                    placement="top"
                     trigger="manual"
                     width="400"
                     v-model="assistShow">
@@ -318,6 +318,8 @@ export default {
       this.leader = {}
       this.assistPerson = ''
       this.assist = []
+      this.leaderShow = false
+      this.assistShow = false
       this.$refs.form.resetFields()
     },
     selectApplication(ownerid,ownertable,data){

+ 6 - 3
src/SDrpManagement/QuotedPrice/detail/index.vue

@@ -20,9 +20,12 @@
         <!-- 此区域提供了自定义操作按钮 -->
         <submit_to class="inline-16" v-if="tool.checkAuth($route.name,'submit') && mainData.status === '新建'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onSubmit="onSuccess"></submit_to>
         <revoke class="inline-16" v-if="tool.checkAuth($route.name,'revoke') && mainData.status === '提交'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onRevoke="onSuccess"></revoke>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '复核' && mainData.specialoffer == '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交' && mainData.specialoffer != '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'  && quotedpricerecheck != '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '复核' && mainData.specialoffer == '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交' && mainData.specialoffer != '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'  && quotedpricerecheck != '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
         <deApprove class="inline-16" v-if="tool.checkAuth($route.name,'deApprove') && mainData.status === '审核'" :disabled="disabledFlag.disabled" :data="mainData" @onDeApprove="onSuccess"></deApprove>
         <check class="inline-16" v-if="tool.checkAuth($route.name,'check') && mainData.specialoffer == '1' &&  mainData.status === '提交' && quotedpricerecheck == '1'" :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onCheck="onSuccess"></check>
         <recheck class="inline-16" v-if="tool.checkAuth($route.name,'recheck') && mainData.specialoffer == '1' && mainData.status === '复核' && quotedpricerecheck == '1'"  :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onReCheck="onSuccess"></recheck>

+ 13 - 13
src/SDrpManagement/agentOrder/index.vue

@@ -1,10 +1,10 @@
 
 <template>
   <div>
-    <basicLayout 
+    <basicLayout
       ref="basicLayout"
-      tableName="orderTable" 
-      idName="sa_orderid" 
+      tableName="orderTable"
+      idName="sa_orderid"
       :apiId="{query:20221224180302,del:20221108152102}"
       :options="options"
       :isExport="false"
@@ -36,9 +36,9 @@
         </div>
         <div class="mt-10">
           <p class="search__label">核销状态:</p>
-          <el-select 
-            v-model="writeoffstatus" 
-            clearable style="margin-right:10px" 
+          <el-select
+            v-model="writeoffstatus"
+            clearable style="margin-right:10px"
             size="small" placeholder="请选择核销状态" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.writeoffstatus = writeoffstatus;$refs.basicLayout.listData()">
             <el-option label="已核销" value="已核销"></el-option>
             <el-option label="部分核销" value="部分核销"></el-option>
@@ -47,9 +47,9 @@
         </div>
         <div class="mt-10">
           <p class="search__label">开票状态:</p>
-          <el-select 
-            v-model="invoicestatus" 
-            clearable style="margin-right:10px" 
+          <el-select
+            v-model="invoicestatus"
+            clearable style="margin-right:10px"
             size="small" placeholder="请选择状态" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.invoicestatus = invoicestatus;$refs.basicLayout.listData()">
             <el-option label="已开票" value="已开票"></el-option>
             <el-option label="部分开票" value="部分开票"></el-option>
@@ -57,7 +57,7 @@
           </el-select>
         </div>
         <div class="mt-10">
-          <label class="search__label" >单据日期:</label>
+          <label class="search__label" >审核日期:</label>
           <el-date-picker
               style="margin-right: 24px !important;"
               size="small"
@@ -103,8 +103,8 @@
  * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
  * @param {string} tableName 开发端配置的表格名称
  * @param {String} idName 数据主id名称
- * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
- * @param {Array} options:{label:描述,value:值} 
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
+ * @param {Array} options:{label:描述,value:值}
  */
 export default {
   data () {
@@ -137,4 +137,4 @@ export default {
 
 </script>
 <style>
-</style>
+</style>

+ 7 - 7
src/SDrpManagement/invoicePrediction/detail/customDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="height: calc(100vh - 245px)">
-    <addCustom v-if="!isDisabled && tool.checkAuth($route.name,'custom')" ref="addCustom" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加客户'" class="inline-16" @add="addCustom"
+    <addCustom v-if="!isDisabled && tool.checkAuth($route.name,'custom') && disabled" ref="addCustom" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加客户'" class="inline-16" @add="addCustom"
                @adds="addCustoms" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'客户'" ></addCustom>
-    <el-button @click="delAll" :type="list.length === 0 ? '' : 'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :type="items.length > 0?'primary':''" size="small" @click="delCustoms" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled ? '' : 'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delCustoms" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="calc(100vh - 335px)" ref="projectRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation"
@@ -31,13 +31,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -45,7 +45,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <el-button size="mini" type="text" @click="delCustom(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+        <el-button size="mini" type="text" @click="delCustom(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
       </template>
     </tableList>
     <div class=" container "  style="text-align:left;float: left">
@@ -72,7 +72,7 @@ import addCustom from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
 export default {
   name: "custom",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{addCustom,tableList},
   data(){
     return {

+ 17 - 16
src/SDrpManagement/invoicePrediction/detail/orderDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="margin-bottom: -10px">
-    <addOrder v-if="!isDisabled && tool.checkAuth($route.name,'order')" ref="addOrder" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加订单'" class="inline-16" @add="addOrder"
+    <addOrder v-if="!isDisabled && tool.checkAuth($route.name,'order') && disabled" ref="addOrder" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加订单'" class="inline-16" @add="addOrder"
               @adds="addOrders" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'订单'"></addOrder>
-    <el-button @click="delAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="items.length > 0?'primary':''" size="small" @click="delOrders" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delOrders" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="300px" ref="orderRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation"
@@ -19,13 +19,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled || (scope.column.data.unoutamount === 0 && scope.column.data.uninvoiceamount > 0) ">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || (scope.column.data.unoutamount === 0 && scope.column.data.uninvoiceamount > 0) || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled || (scope.column.data.unoutamount > 0 && scope.column.data.uninvoiceamount === 0)">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || (scope.column.data.unoutamount > 0 && scope.column.data.uninvoiceamount === 0) || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -40,8 +40,8 @@
       </template>
       <template v-slot:opreation="scope">
 <!--        <el-button size="mini" type="text" @click="adds(scope.data)">新增产品</el-button>-->
-        <addProducts ref="addProduct" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :param="addProductsParam" :tablecols="tablecolsAddProduct" :title="'添加产品'" class="inline-16" @add="addProduct"
-                     @adds="addProducts" @uploadData="uploadDataProduct" @onSuccess="onSuccessProduct" :dataType="'产品'" btnType="text" :data="scope.data"></addProducts>
+        <addProducts ref="addProduct" v-if="tool.checkAuth($route.name,'order')" :param="addProductsParam" :tablecols="tablecolsAddProduct" :title="'添加产品'" class="inline-16" @add="addProduct"
+                     @adds="addProducts" @uploadData="uploadDataProduct" @onSuccess="onSuccessProduct" :dataType="'产品'" btnType="text" :data="scope.data" :isDisabled="isDisabled" :disabled="disabled"></addProducts>
 <!--        <el-button size="mini" type="text" @click="delOrder(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>-->
       </template>
     </tableList>
@@ -66,8 +66,8 @@
     <!-- 产品   -->
     <div style="margin-top: 10px;">
       <div >
-        <el-button @click="delAllProduct" :type="productList.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="productList.length === 0">一键删除</el-button>
-        <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="productItems.length > 0?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="productItems.length === 0">删 除</el-button>
+        <el-button @click="delAllProduct" :type="productList.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="productList.length === 0 || !disabled">一键删除</el-button>
+        <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="productItems.length > 0 && disabled?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="productItems.length === 0 || !disabled">删 除</el-button>
         <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="productsParam.content.where.condition?productsParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="productsParam.content.where.condition" @keyup.native.enter="listProduct(productsParam.content.pageNumber = 1)" @clear="listProduct(productsParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
         </el-input>
       </div>
@@ -75,7 +75,7 @@
                 @selectionChange="selectionChangeProduct"  :headerOptions="['plandeliverydate']">
         <template v-slot:header="scope">
           <div v-if="scope.column.columnname == 'plandeliverydate'">
-            <span v-if="isDisabled || unoutamountOrder === 0">计划出货日期</span>
+            <span v-if="isDisabled || unoutamountOrder === 0 || !disabled">计划出货日期</span>
             <span v-else>
               <el-date-picker
                   style="width: 130px"
@@ -105,13 +105,13 @@
             <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'outamount'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
           </div>
           <div v-else-if="scope.column.columnname === 'invoiceamount'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -129,7 +129,7 @@
             <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'plandeliverydate'">
-            <span v-if="isDisabled || unoutamountOrder === 0">
+            <span v-if="isDisabled || unoutamountOrder === 0 || !disabled">
               {{scope.column.data[scope.column.columnname]}}
             </span>
             <span v-else>
@@ -149,7 +149,7 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button v-if="tool.checkAuth($route.name,'order')" size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+          <el-button v-if="tool.checkAuth($route.name,'order')" size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -178,10 +178,10 @@
 <script>
 import addOrder from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
-import addProducts from '@/template/prediction/addTemp'
+import addProducts from '@/template/prediction/addTemp1'
 export default {
   name: "order",
-  props:['id','isDisabled','data'],
+  props:['id','isDisabled','data','disabled'],
   components:{addOrder,tableList,addProducts},
   data(){
     let that = this
@@ -669,6 +669,7 @@ export default {
   mounted() {
     this.listData()
     this.$emit('onSuccess')
+    console.log(this.data,'data数据33333')
   },
   created() {
     this.tablecolsAdd = this.tool.tabelCol(this.$route.name).orderAddTable.tablecols

+ 7 - 7
src/SDrpManagement/invoicePrediction/detail/projectDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="height: calc(100vh - 245px)">
-    <addProject v-if="!isDisabled && tool.checkAuth($route.name,'project')" ref="addProject" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加项目'" class="inline-16" @add="addProject"
+    <addProject v-if="!isDisabled && tool.checkAuth($route.name,'project') && disabled" ref="addProject" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加项目'" class="inline-16" @add="addProject"
                 @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'项目'"></addProject>
-    <el-button @click="delAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'project')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'project')" :type="items.length > 0?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'project')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'project')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="calc(100vh - 335px)" ref="projectRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation" @selectionChange="selectionChange"  >
@@ -15,13 +15,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -29,7 +29,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+        <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
       </template>
     </tableList>
     <div class=" container"  style="text-align:left;float: left">
@@ -56,7 +56,7 @@ import addProject from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
 export default {
   name: "project",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{addProject,tableList},
   data(){
     return {

+ 43 - 5
src/SDrpManagement/invoicePrediction/detail/subordinate.vue

@@ -13,13 +13,13 @@
         @onEditSuccess="queryMainData(id)"
        >
       <div slot="slot0" class=" normal-panel">
-        <orderList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :data="mainData"></orderList>
+        <orderList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :data="mainData" :disabled="mainData.disabled"></orderList>
       </div>
       <div slot="slot1" class=" normal-panel">
-        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess"></projectList>
+        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :disabled="mainData.disabled"></projectList>
       </div>
       <div slot="slot2" class=" normal-panel">
-        <customList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess"></customList>
+        <customList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :disabled="mainData.disabled"></customList>
       </div>
     </basicDetails>
   </div>
@@ -35,8 +35,46 @@ export default {
   props:["id","isDisabled"],
   data(){
     return {
-      mainData:'',
+      mainData: {
+        disabled:false,
+      },
       mainAreaData:'',
+      userInfo:JSON.parse(window.sessionStorage.getItem('active_account')),
+    }
+  },
+  watch:{
+    async mainData(val) {
+      const res = await this.$api.requested({
+        "id": 20220930103501,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      const agent = await this.$api.requested({
+        "id":20230329122604,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      let flag = 0
+      for (var i=0;i<res.data[0].team.length;i++){
+        if (res.data[0].team[i].userid === JSON.parse(window.sessionStorage.getItem('active_account')).userid){
+          if (res.data[0].team[i].editable === 1){
+            this.mainData.disabled = true
+            flag =1
+            break
+          }else {
+            flag = 0
+            break
+          }
+        }
+      }
+      /*不是负责人*/
+      flag === 0?agent.data.editable === 0?this.mainData.disabled = false:this.mainData.disabled = true:this.mainData.disabled = true
+      this.$refs.details.$refs.group.editdataleader = agent.data.editdataleader
+      console.log(this.mainData.disabled,'权限结果')
     }
   },
   methods:{
@@ -47,7 +85,7 @@ export default {
           "sa_salesforecastbillid":this.$route.query.id
         }
       })
-      this.mainData = res.data
+      this.mainData = Object.assign({},this.mainData,res.data)
       this.changeDataStructure()
 
     },

+ 0 - 106
src/SDrpManagement/projectPrediction/detail/index.vue

@@ -1,106 +0,0 @@
-<template>
-  <div>
-    <basicDetails
-        ref="details"
-        :titleText="mainData.title"
-        :editData="mainData"
-        :mainAreaData="mainAreaData"
-        idname="sa_salesforecastbillid"
-        :pageChange="true"
-        typeTask="我的客户"
-        :tags="[]"
-        :tabs="['项目产品清单']"
-        @onEditSuccess="queryMainData(id)"
-       >
-      <div slot="slot0" class="normal-panel">
-        <projectList :id="id" :isDisabled="isDisabled" @onSuccess="onSuccess"></projectList>
-      </div>
-    </basicDetails>
-  </div>
-</template>
-
-<script>
-import projectList from '@/HDrpManagement/projectPredictionManage/details/modules/projectList'
-export default {
-  name: "subordinate",
-  components:{projectList},
-  props:["id",'isDisabled'],
-  data(){
-    return {
-      mainData:'',
-      mainAreaData:'',
-    }
-  },
-  methods:{
-    async queryMainData () {
-      const res = await this.$api.requested({
-        "id": 20230705144704,
-        "content": {
-          "sa_salesforecastbillid":this.id
-        }
-      })
-      this.mainData = res.data
-      this.changeDataStructure()
-
-    },
-    changeDataStructure () {
-      let that = this
-      this.mainAreaData = [
-        {
-          label:'标题',
-          value: this.mainData.title
-        },
-        {
-          label:'单号',
-          value: this.mainData.billnum
-        },
-        {
-          label:'提报人',
-          value: this.mainData.name
-        },
-        {
-          label:'预测时间',
-          value: this.mainData.periodstart + '至' + this.mainData.periodend,
-          style: ()=>{
-            let style = {color:'#3874f6'}
-            return style
-          }
-        },
-        {
-          label:'状态',
-          value: this.mainData.status,
-          style: ()=> {
-            let style = {}
-            switch (that.mainData.status) {
-              case '进行中':
-                style = {color:'#00B32B'}
-                break;
-              default:
-                break;
-            }
-            return style
-          }
-        },
-        {
-          label:'预测金额',
-          value: '¥'+this.tool.formatAmount(this.mainData.projectamount,2),
-          style: ()=> {
-            let style = {color:'#ff0000'}
-            return style
-          }
-        },
-      ]
-    },
-    onSuccess(){
-      this.queryMainData()
-    }
-  },
-  mounted() {
-    this.queryMainData()
-  }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 11 - 11
src/SDrpManagement/projectPrediction/detail/projectListDetail.vue

@@ -1,8 +1,8 @@
 <template>
   <div style="margin-bottom: -10px;display: inline-block;width: 100%">
-      <addProject v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" ref="addProject" :param="paramProject" class="inline-16" @add="addProject" @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess"></addProject>
-      <el-button @click="delProjectAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="list.length === 0">一键删除</el-button>
-      <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="items.length > 0?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+      <addProject v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct') && disabled" ref="addProject" :param="paramProject" class="inline-16" @add="addProject" @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess"></addProject>
+      <el-button @click="delProjectAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+      <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
       <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="projectParam.content.where.condition?projectParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="projectParam.content.where.condition"
                  @keyup.native.enter="listData(projectParam.content.pageNumber = 1)" @clear="listData(projectParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
       </el-input>
@@ -18,8 +18,8 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button type="text" size="mini" @click="onProduct(scope.data)" :disabled="isDisabled">添加产品</el-button>
-          <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+          <el-button type="text" size="mini" @click="onProduct(scope.data)" :disabled="isDisabled || !disabled">添加产品</el-button>
+          <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -43,8 +43,8 @@
     <div style="float: left;width: 100%">
       <el-row >
         <el-col :span="15">
-          <el-button @click="delProductAll" :type="productList.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="productList.length === 0">一键删除</el-button>
-          <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="itemsPro.length > 0?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="itemsPro.length === 0">删 除</el-button>
+          <el-button @click="delProductAll" :type="productList.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="productList.length === 0 || !disabled">一键删除</el-button>
+          <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="itemsPro.length > 0 && disabled?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="itemsPro.length === 0 || !disabled">删 除</el-button>
           <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="productParam.content.where.condition?productParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="productParam.content.where.condition" @keyup.native.enter="listData(productParam.content.pageNumber = 1)" @clear="listData(productParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
           </el-input>
         </el-col>
@@ -67,13 +67,13 @@
             <span style="color: #ff0000">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'orderqty'">
-            <span v-if="isDisabled">{{scope.column.data[scope.column.columnname]}}</span>
+            <span v-if="isDisabled || !disabled">{{scope.column.data[scope.column.columnname]}}</span>
             <span v-else>
             <el-input-number size="mini" v-model="scope.column.data.orderqty" @change="onChange(scope.column.data.orderqty,scope.$index,scope.column.data)" :min="scope.column.data.orderminqty" :step="scope.column.data.orderaddqty"></el-input-number>
           </span>
           </div>
           <div v-else-if="scope.column.columnname === 'price'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
               <el-input size="mini" v-model="scope.column.data.price" @change="priceChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
             </span>
@@ -81,7 +81,7 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled" :loading="loadingProduct">删 除</el-button>
+          <el-button size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled || !disabled" :loading="loadingProduct">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -122,7 +122,7 @@ import addProject from '@/template/prediction/addProjectTemp'
 import addProduct from '@/template/prediction/addProductTemp'
 export default {
   name: "projectList",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{tableList,addProject,addProduct},
   data(){
     return {

+ 40 - 3
src/SDrpManagement/projectPrediction/detail/subordinate.vue

@@ -13,7 +13,7 @@
         @onEditSuccess="queryMainData($route.query.id)"
        >
       <div slot="slot0" class="normal-panel" >
-        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="queryMainData"></projectList>
+        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="queryMainData" :disabled="mainData.disabled"></projectList>
       </div>
     </basicDetails>
   </div>
@@ -28,10 +28,47 @@ export default {
   props:["id"],
   data(){
     return {
-      mainData:'',
+      mainData: {
+        disabled:false,
+      },
       mainAreaData:'',
     }
   },
+  watch:{
+    async mainData(val) {
+      const res = await this.$api.requested({
+        "id": 20220930103501,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      const agent = await this.$api.requested({
+        "id":20230329122604,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      let flag = 0
+      for (var i=0;i<res.data[0].team.length;i++){
+        if (res.data[0].team[i].userid === JSON.parse(window.sessionStorage.getItem('active_account')).userid){
+          if (res.data[0].team[i].editable === 1){
+            this.mainData.disabled = true
+            flag =1
+            break
+          }else {
+            flag = 0
+            break
+          }
+        }
+      }
+      /*不是负责人*/
+      flag === 0?agent.data.editable === 0?this.mainData.disabled = false:this.mainData.disabled = true:this.mainData.disabled = true
+      this.$refs.details.$refs.group.editdataleader = agent.data.editdataleader
+      console.log(this.mainData.disabled,'权限结果')
+    }
+  },
   methods:{
     async queryMainData () {
       const res = await this.$api.requested({
@@ -40,7 +77,7 @@ export default {
           "sa_salesforecastbillid":this.$route.query.id
         }
       })
-      this.mainData = res.data
+      this.mainData = Object.assign({},this.mainData,res.data)
       this.changeDataStructure()
 
     },

+ 3 - 3
src/SDrpManagement/projectPrediction/modules/detailInfo.vue

@@ -9,18 +9,18 @@
         append-to-body
     >
       <div class="detail__panel">
-        <detailIn :id="id" ref="subordinate" :isDisabled="true"></detailIn>
+<!--        <detailIn :id="id" ref="subordinate" :isDisabled="true"></detailIn>-->
       </div>
     </el-drawer>
   </div>
 </template>
 
 <script>
-import detailIn from '../detail/index'
+/*import detailIn from '../detail/index'*/
 export default {
   name: "detailInfo",
   props:['data'],
-  components:{detailIn},
+  components:{},
   data(){
     return {
       drawer:false,

+ 3 - 3
src/SDrpManagement/projectPrediction/modules/edit.vue

@@ -9,18 +9,18 @@
         append-to-body
     >
       <div class="detail__panel">
-        <detailInfo :id="id" ref="subordinate"></detailInfo>
+<!--        <detailInfo :id="id" ref="subordinate"></detailInfo>-->
       </div>
     </el-drawer>
   </div>
 </template>
 
 <script>
-import detailInfo from '../detail/index'
+/*import detailInfo from '../detail/index'*/
 export default {
   name: "edit",
   props:['data'],
-  components:{detailInfo},
+  components:{},
   data(){
     return {
       drawer:false,

+ 0 - 72
src/SDrpManagement/projectPrediction/modules/editCopy.vue

@@ -1,72 +0,0 @@
-<template>
-  <div>
-    <el-button size="mini" type="text" @click="goDetail">编 辑</el-button>
-    <el-drawer
-        :visible.sync="drawer"
-        :with-header="false"
-        direction="rtl"
-        size="90%"
-        append-to-body
-    >
-      <div class="detail__panel">
-        <detailInfo :id="id" ref="subordinate"></detailInfo>
-      </div>
-    </el-drawer>
-  </div>
-</template>
-
-<script>
-import detailInfo from '../detail/index'
-export default {
-  name: "edit",
-  props:['data'],
-  components:{detailInfo},
-  data(){
-    return {
-      drawer:false,
-      mainAreaData:'',
-      mainData:"",
-      id:''
-    }
-  },
-  methods:{
-    goDetail(){
-
-      this.id = this.data.sa_salesforecastbillid
-      this.drawer = true
-    },
-    onShow(){
-      this.drawer = true
-      let query = {id:this.data.sa_salesforecastbillid,rowindex:this.data.rowindex}
-      this.$router.push({path:'/projectPredictionDetail',query:query})
-      this.$store.dispatch('changeDetailDrawer',true)
-      /*this.queryMainData()*/
-    },
-    async queryMainData () {
-      const res = await this.$api.requested({
-        "id": 20230705144704,
-        "content": {
-          "sa_salesforecastbillid":37
-        }
-      })
-      console.log(res.data,'1111')
-      this.mainData = res.data
-      this.changeDataStructure()
-    },
-    changeDataStructure () {
-      this.mainAreaData = [
-        {
-          label:'标题',
-          value: this.mainData.title
-        },
-      ]
-    }
-  },
-  mounted() {
-  }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 15 - 15
src/SDrpManagement/salerOrder/index.vue

@@ -1,10 +1,10 @@
 
 <template>
   <div>
-    <basicLayout 
+    <basicLayout
       ref="basicLayout"
-      tableName="orderTable" 
-      idName="sa_orderid" 
+      tableName="orderTable"
+      idName="sa_orderid"
       :apiId="{query:20221111145202,del:20221108152102}"
       :options="options"
       :isExport="false"
@@ -35,9 +35,9 @@
         </div>
         <div class="mt-10">
           <p class="search__label">核销状态:</p>
-          <el-select 
-            v-model="writeoffstatus" 
-            clearable style="margin-right:10px" 
+          <el-select
+            v-model="writeoffstatus"
+            clearable style="margin-right:10px"
             size="small" placeholder="请选择核销状态" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.writeoffstatus = writeoffstatus;$refs.basicLayout.listData()">
             <el-option label="已核销" value="已核销"></el-option>
             <el-option label="部分核销" value="部分核销"></el-option>
@@ -46,9 +46,9 @@
         </div>
         <div class="mt-10">
           <p class="search__label">开票状态:</p>
-          <el-select 
-            v-model="invoicestatus" 
-            clearable style="margin-right:10px" 
+          <el-select
+            v-model="invoicestatus"
+            clearable style="margin-right:10px"
             size="small" placeholder="请选择状态" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.invoicestatus = invoicestatus;$refs.basicLayout.listData()">
             <el-option label="已开票" value="已开票"></el-option>
             <el-option label="部分开票" value="部分开票"></el-option>
@@ -56,7 +56,7 @@
           </el-select>
         </div>
         <div class="mt-10">
-          <label class="search__label" >单据日期:</label>
+          <label class="search__label" >审核日期:</label>
           <el-date-picker
               style="margin-right: 24px !important;"
               size="small"
@@ -86,7 +86,7 @@
         <!-- <div v-else-if="scope.data.column.columnname == 'tradefield'">
           {{ scope.data.column.data.tradefield }}
         </div> -->
-        
+
         <div v-else-if="scope.data.column.columnname == 'defaultamount'">
           {{ tool.formatAmount(scope.data.column.data.defaultamount,2) }}
         </div>
@@ -109,8 +109,8 @@
  * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
  * @param {string} tableName 开发端配置的表格名称
  * @param {String} idName 数据主id名称
- * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
- * @param {Array} options:{label:描述,value:值} 
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
+ * @param {Array} options:{label:描述,value:值}
  */
 export default {
   data () {
@@ -121,7 +121,7 @@ export default {
       writeoffstatus:'',
       invoicestatus:'',
       dateSelect:[]
-      
+
     }
   },
   methods:{
@@ -141,4 +141,4 @@ export default {
 
 </script>
 <style>
-</style>
+</style>

+ 16 - 0
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/list.vue

@@ -23,6 +23,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
+        <el-button class="inline-16" type="text" size="mini" @click="goDetail(scope.data)">详 情</el-button>
         <edit  :data="scope.data" :enterprisename="data.enterprisename" :disabled="data.disabled" @updateSuccess="onSuccess"></edit>
         <toVoid  :data="scope.data" :disabled="data.disabled" @toVoidSuccess="onSuccess" ></toVoid>
       </template>
@@ -109,6 +110,21 @@ export default {
     queryClick(){
       this.params.content.where.condition = this.search
       this.listData()
+    },
+    goDetail(val){
+      this.$store.dispatch('changeDetailDrawer',false)
+      this.$nextTick(()=>{
+        let route = this.$route
+        if (route.path !== 'phonebookDetail') {
+          this.oldRoute = {path:route.path,query:route.query}
+          this.$store.dispatch('setHistoryRouter',this.oldRoute)
+        }
+        this.$router.push({
+          path:'/phonebookDetail',
+          query:{contactsid:val.contactsid}
+        })
+        this.$store.dispatch('changeDetailDrawer',true)
+      })
     }
   },
   mounted() {

+ 6 - 5
src/SManagement/orderclue/index.vue

@@ -11,15 +11,15 @@
       idName="sat_orderclueid"
       :autoQuery="false"
       :isExport="false"
-      @listData="reList"
       :specialKey="[{key:'leader',value:'name'}]"
       :apiId="{query:20221101094502,del:''}"
       :options="options"
       :detailPath="{path:'/orderclue_detail',param:{tabIndex:tabIndex}}"
       @checkboxCallBack="checkboxCallBack"
+      @listData="reList"
     >
-      <div slot="titleRight" >
-        <exportFile :param="param" fileName="销售线索"></exportFile>
+      <div slot="titleRight">
+        <exportFile :param="param" :columns="tablecols" fileName="销售线索"></exportFile>
         <changeSite class="inline-16" v-if="tool.checkAuth($route.name,'changeSite')" :selectList="selectList" @onSuccess="$refs.list.listData($refs.list.param.content.pageNumber = 1)"></changeSite>
       </div>
     <template #custom>
@@ -133,7 +133,8 @@ export default {
       selectList:[],
       tagData:[],
       tag:'',
-      param:{}
+      param:{},
+      tablecols:[]
     }
   },
   provide() {
@@ -156,7 +157,7 @@ export default {
     const res3 = await this.$store.dispatch('optiontypeselect','tradefield')
     this.tradefields = res3.data
     console.log(this.statusList);
-
+    this.tablecols = this.tool.tabelCol(this.$route.name).orderclueList.tablecols
   },
   methods:{
     reList(){

+ 9 - 3
src/api/request.js

@@ -117,22 +117,28 @@ service.interceptors.response.use(response => {
                 case 505:
                     error.message = 'http版本不支持该请求'
                     break;
+                case '(已取消)':
+                    error.message = '当前网络繁忙,请稍后重新登录'
+                    break;
                 default:
                     error.message = `连接错误${error.response.status}`
             }
         } else {
             // 超时处理
             if (JSON.stringify(error).includes('timeout')) {
-                console.log(error)
                 Message.error('服务器响应超时,请刷新当前页')
             }
             source.cancel('停止请求');
         }
+        if (error.message === 'timeout of 20000ms exceeded'){
+            Message.error('当前网络繁忙,请稍后重新登录')
+        }else {
+            Message.error(error.message)
+        }
 
-        Message.error(error.message)
             /***** 处理结束 *****/
             //如果不需要错误处理,以上的处理过程都可省略
         return Promise.resolve(error.response)
     })
     //4.导入文件
-export default service
+export default service

+ 1 - 1
src/components/export_excel/index.vue

@@ -73,4 +73,4 @@ export default {
 
 </script>
 <style>
-</style>
+</style>

+ 1 - 1
src/components/socketMessage/index.vue

@@ -7,7 +7,7 @@
     <div class="message-item" v-for="item in list" :key="item.index">
       <p class="text" style="margin-bottom:10px;font-weight: 400;">[{{item.type}}消息]&nbsp;{{item.title}}</p>
       <div style="height:170px;overflow-y: scroll;">{{ item.text }}</div>
-      
+
     </div>
     <p class="unread-panel">共有{{total}}条未读消息</p>
   </div>

+ 189 - 0
src/template/prediction/addTemp1.vue

@@ -0,0 +1,189 @@
+<template>
+  <div>
+    <el-button :type="btnType?btnType:'primary'" size="small" @click="onShow" :disabled="isDisabled || !disabled">{{title}}</el-button>
+    <el-drawer
+        :title="title"
+        :visible.sync="dialogVisible"
+        size="80%"
+        direction="rtl"
+        :show-close="false"
+        append-to-body
+        >
+      <div class="drawer__panel">
+        <div style="margin-bottom: 20px">
+          <uploadAllData
+              :dataType="dataType"
+              class="inline-16"
+              :total="total"
+              @handlePullApi="handlePullApi"
+              @handleUploadApi="handleUploadApi"
+              @onSuccess="onSuccess"
+          ></uploadAllData>
+          <el-button style="margin-left: -10px" :type="items.length === 0?'':'primary'" size="small" class="inline-16" @click="adds" :disabled="items.length === 0">批量添加</el-button>
+          <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
+          </el-input>
+        </div>
+
+        <el-row>
+          <el-col :span="24">
+            <tableList :checkbox="true" :data="list" :layout="tablecols" :opwidth="200" :custom="true" height="calc(100vh - 370px)" fixedName="operation" @selectionChange="checkboxCallBack">
+              <template v-slot:customcol="scope">
+                <div v-if="scope.column.columnname === 'operation'">
+                  <span>{{scope.column.data[scope.column.columnname]}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'tag'">
+                  <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                    <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
+                      <span>{{item}}</span>
+                    </el-tag>
+                  </div>
+                  <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                    <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
+                      <span>{{item}}</span>
+                    </el-tag>
+                  </div>
+                </div>
+                <div v-else-if="scope.column.columnname === 'defaultamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'amount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'uninvoiceamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'unoutamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'defaultprice'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'marketprice'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
+              </template>
+              <template v-slot:opreation="scope">
+                <el-button size="mini" type="text" @click="add(scope.data)" :loading="loading">添 加</el-button>
+              </template>
+            </tableList>
+            <div  class="container normal-panel" style="text-align:right">
+              <el-pagination
+                  background
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                  :current-page="param.content.pageNumber"
+                  :page-sizes="[20, 50, 100, 200]"
+                  :page-size="20"
+                  layout="total,sizes, prev, pager, next, jumper"
+                  :total="total">
+              </el-pagination>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import tableList from '@/components/table/index5'
+import uploadAllData from '@/components/uploadAllData/index'
+export default {
+  name: "addProjectTemp",
+  props:['param','tablecols','title','dataType','btnType','data','isDisabled','disabled'],
+  components:{tableList,uploadAllData},
+  data() {
+    return {
+      dialogVisible:false,
+      loading:false,
+      list:[],
+      items:[],
+      total:0,
+    }
+  },
+  methods:{
+    onShow(){
+      this.dialogVisible = true
+      console.log(this.param,'param')
+      this.listData()
+    },
+    async listData(){
+      console.log('列表数据执行',this.param)
+      if (this.title === '添加产品') {
+        this.param.content.sa_salesforecastprojectid = this.data.sa_salesforecastprojectid
+        this.param.content.sa_orderid = this.data.sa_orderid
+      }
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      console.log(this.list,'list')
+    },
+    add(val){
+      console.log(val)
+      this.loading = true
+      this.dialogVisible = false
+      if (this.title === '添加产品'){
+        this.$emit('add',val,this.data)
+        this.loading = false
+      }else {
+        this.$emit('add',val)
+        this.loading = false
+      }
+
+    },
+    checkboxCallBack(val){
+      console.log(val)
+      this.items = val
+    },
+    adds(){
+     /* let addItems = []
+      addItems = this.items.map(item=>{
+        return {
+          "sa_salesforecastprojectid": 0,
+          "ownerid": item.sa_projectid,
+          "discountrate":1
+        }
+      })*/
+      this.dialogVisible = false
+      if (this.title === '添加产品'){
+        this.$emit('adds',this.items,this.data)
+      }else {
+        this.$emit('adds',this.items)
+      }
+
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+    /*拉取数据*/
+    handlePullApi (pullApi) {
+      pullApi.content = JSON.parse(JSON.stringify(this.param.content))
+      pullApi.id = this.param.id
+      /*pullApi.content.sa_projectid = this.$route.query.id*/
+    },
+    /*上传数据*/
+    handleUploadApi (uploadApi,data) {
+      this.$emit('uploadData',uploadApi,data)
+    },
+    onSuccess () {
+      this.dialogVisible = false
+      this.$emit('onSuccess')
+    },
+  },
+  created() {
+
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 15 - 8
src/views/mediaStatistics/modules/salesfunnel.vue

@@ -26,18 +26,18 @@
     </div>
     <div>
       <el-row>
-        <el-col :span="14">
+        <el-col :xs="15" :sm="15" :md="15" :lg="15" :xl="14">
           <p class="title">销售漏斗图</p>
           <div class="re-panel">
             <div id="containerFunnel" style="height: calc(60vh)"></div>
           </div>
         </el-col>
-        <el-col :span="10">
+        <el-col :offset="1" :xs="8" :sm="8" :md="8" :lg="8" :xl="9">
           <div>
             <p class="title">表格数据</p>
             <el-table
                 :data="tableData"
-                style="width: 500px"
+                style="width: 100%"
                 size="small"
                 :header-cell-style="{height:'60px',fontWeight:'400',fontSize:'22px',color:'#333333',background:'#ddebf7'}"
                 :cell-style="{height:'40px',fontWeight:'400',fontSize:'18px'}"
@@ -45,7 +45,7 @@
               <el-table-column
                   prop="stagename"
                   label="阶段"
-                  width="180">
+                  width="150">
               </el-table-column>
               <el-table-column
                   prop="projectqty"
@@ -56,6 +56,10 @@
                   prop="signamount_due"
                   label="预计签约金额(万元)">
               </el-table-column>
+              <el-table-column
+                  prop="dealamount"
+                  label="项目成交金额(万元)">
+              </el-table-column>
             </el-table>
           </div>
         </el-col>
@@ -121,6 +125,9 @@
           <div v-else-if="scope.column.columnname == 'signamount_due'">
             <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
           </div>
+          <div v-else-if="scope.column.columnname == 'dealamount'">
+            <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+          </div>
           <div v-else-if="scope.column.columnname == 'begdate_due'">
             <span>{{scope.column.data[[scope.column.columnname]] ? scope.column.data[[scope.column.columnname]] !== 'NaN-NaN'?scope.column.data[[scope.column.columnname]]:'--' :'--'}}</span>
           </div>
@@ -319,7 +326,7 @@ export default {
               const group = new G.Group({});
               const content = ()=>{
                 if (this.tableData[0]) {
-                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元`
+                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元  项目成交金额: ${datum.dealamount}万元`
                   const lines = text.split('  ');
                   return lines.join('\n');
                 }
@@ -409,7 +416,7 @@ export default {
               const group = new G.Group({});
               const content = ()=>{
                 if (this.tableData[0]) {
-                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元`
+                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元  项目成交金额: ${datum.dealamount}万元`
                   const lines = text.split('  ');
                   return lines.join('\n');
                 }
@@ -499,7 +506,7 @@ export default {
               const group = new G.Group({});
               const content = ()=>{
                 if (this.tableData[0]) {
-                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元`
+                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元  项目成交金额: ${datum.dealamount}万元`
                   const lines = text.split('  ');
                   return lines.join('\n');
                 }
@@ -590,7 +597,7 @@ export default {
               const group = new G.Group({});
               const content = ()=>{
                 if (this.tableData[0]) {
-                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元`
+                  const text = `${datum.stagename}  当前项目数: ${datum.projectqty} 项目数: ${datum.sequence1} 转化率: ${datum.zhl?Math.round((datum.zhl* 100)*100)/100 + '%':'--'}  预计签约金额: ${datum.signamount_due}万元  项目成交金额: ${datum.dealamount}万元`
                   const lines = text.split('  ');
                   return lines.join('\n');
                 }

+ 3 - 1
src/views/salesData/components/allSalesTemplate.vue

@@ -94,6 +94,7 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
+          <exportFile class="inline-16" :param="param" :columns="tablecols" :fileName="buttonTitle === '客户全部排名'?'客户销售排名':'业务员销售排名'" :dataid="dataid"></exportFile>
         </div>
         <div style="margin-top: 10px;margin-bottom: 10px">
           <tableTemplate ref="table" :layout="tablecols" :data="list" :opwidth="200" :custom="true" :height="height">
@@ -171,10 +172,11 @@
 
 <script>
 import tableTemplate from './table';
+import exportFile from '@/components/export_file/index'
 export default {
   name: "allSalesTemplate",
   props:['buttonTitle','monthDate','dateType','tablecols','dataid','param','type'],
-  components:{tableTemplate},
+  components:{tableTemplate,exportFile},
   data(){
     return {
       visible:false,

+ 3 - 1
src/views/salesData/components/financialCollectionDetail.vue

@@ -15,6 +15,7 @@
             <span class="search__label">搜索:</span>
             <el-input style="width:300px;" placeholder="订单号、部门、业务员、客户、产品、品号" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
             </el-input>
+            <exportFile :param="param" :columns="tablecols" :fileName="data.erpagentnum+ ' ' + data.enterprisename + '_' + unwriteoffamounttype + '未回款明细'" :dataid="dataid"></exportFile>
           </div>
           <div style="float: right">
             <span class="search__label">分析日期:</span>
@@ -89,9 +90,10 @@
 
 <script>
 import tableTemplate from '@/views/salesData/components/table';
+import exportFile from '@/components/export_file/index'
 export default {
   name: "financialCollectionDetail",
-  components:{tableTemplate},
+  components:{tableTemplate,exportFile},
   props:["type","dataid","sys_enterpriseid","data","unwriteoffamounttype","isFull"],
   data(){
     return {

+ 3 - 1
src/views/salesData/components/shippingUninvoiceDetail.vue

@@ -15,6 +15,7 @@
             <span class="search__label">搜索:</span>
             <el-input style="width:300px;" placeholder="订单号、部门、业务员、客户、产品、品号" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
             </el-input>
+            <exportFile class="inline-16" :columns="tablecols" :param="param" :fileName="data.erpagentnum+ ' ' + data.enterprisename + '_'  + '出货未开票明细'"></exportFile>
           </div>
           <div style="float: right">
             <span class="search__label">分析日期:</span>
@@ -84,10 +85,11 @@
 
 <script>
 import tableTemplate from '@/views/salesData/components/table';
+import exportFile from '@/components/export_file/index'
 export default {
   name: "shippingUninvoiceDetail",
   props:["type","dataid","sys_enterpriseid","data","isFull"],
-  components:{tableTemplate},
+  components:{tableTemplate,exportFile},
   data(){
     return {
       visible:false,