فهرست منبع

Merge branch 'mergeBranch' into nextUpdateNext

# Conflicts:
#	src/components/dynamic-newTable/index.vue
qymljy 2 سال پیش
والد
کامیت
a307a71772

+ 4 - 4
src/HDrpManagement/ProductMag/modules/saleClass.vue

@@ -16,7 +16,7 @@
       <slot name="addClass" :data="{checkArr:checkArr,data:data}"></slot>
     </div>
     <div style="margin-top: 15px">
-      <tableLayout :layout="tablecols" :data="list" :opwidth="200"  :custom="true" :width="false"  :height="tableHieght" fixedName="operation">
+      <table-new-layout :layout="tablecols" :data="list" :opwidth="200"  :custom="true" :width="false"  :height="tableHieght" fixedName="operation">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'price'">
             <el-input size="small" v-if="currentProduct.sa_aftersalesmag_itemsid == scope.column.data.sa_aftersalesmag_itemsid" v-model="scope.column.data.price"></el-input>
@@ -38,7 +38,7 @@
         <template v-slot:opreation="scope">
           <slot name="delProduct" :data="scope.data"></slot>
         </template>
-      </tableLayout>
+      </table-new-layout>
     </div>
     <div style="margin-top:16px;text-align:right">
       <el-pagination
@@ -60,7 +60,7 @@ export default {
   props:["data"],
   data () {
     return {
-      tableHieght:"calc(100vh - 380px)",
+      tableHieght:"calc(100vh - 371px)",
       tablecols:[],
       list:[],
       total:0,
@@ -119,4 +119,4 @@ export default {
 </script>
 <style scoped>
 
-</style>
+</style>

+ 1 - 0
src/HDrpManagement/contractManage/components/itemClass/index.vue

@@ -25,6 +25,7 @@
       ></uploadAllData>
       <el-button class="inline-16" v-if="tool.checkAuth($route.name,'productClassManage') && data.status === '新建' && isLeader" size="small" :type="delProductData.length === 0?'':'primary'" @click="onDelProduct" :disabled="delProductData.length === 0">删 除</el-button>
       <add v-if="tool.checkAuth($route.name,'productClassManage') && data.status === '新建' && isLeader" :data="data" class="inline-16" @itemClassAdd="listData" @closeDrawer="listData"></add>
+      <slot name="cooperate"></slot>
     </div>
     <div class="produtMag-panel">
       <tableLayout :layout="tablecols" checkbox="true"  :data="list" :opwidth="200" height="calc(100vh - 390px)" :width="true" :custom="true" fixedName="offerPrice amount" @selectionChange="selectionChange">

+ 9 - 7
src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue

@@ -22,7 +22,7 @@
       </div>
       <div class="produtMag-panel">
       </div>
-      <tableLayout v-tableLoad="tableLoad" checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 300px)" :width="true" :custom="true" fixedName="operation amount" @selectionChange="selectionChange">
+      <tableLayout v-tableLoad="tableLoad" checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 356px)" :width="true" :custom="true" fixedName="operation amount" @selectionChange="selectionChange">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'qty'">
 <!--            <el-input-number size="mini" v-if="editIndex == scope.column.data.sa_contract_itemsid" v-model="scope.column.data.qty" @change="qtyChange" :min="1" label="描述文字"></el-input-number>-->
@@ -80,8 +80,8 @@
         </template>
       </tableLayout>
     </div>
-    <!-- <div style="height: 35px;margin-top: 20px">
-      <div v-if="$route.query.type != '框架'" style="float: left">金额(元):{{ data.signamount ? tool.formatAmount(data.signamount,2) : '0.00'}}</div>
+     <div style="height: 35px;margin-top: 16px">
+<!--      <div v-if="$route.query.type != '框架'" style="float: left">金额(元):{{ data.signamount ? tool.formatAmount(data.signamount,2) : '0.00'}}</div>-->
       <div style="float: right">
         <el-pagination
             background
@@ -89,11 +89,12 @@
             @current-change="handleCurrentChange"
             :current-page="params.content.pageNumber"
             :page-sizes="[20, 50, 100, 200]"
-            :page-size="100"
+            :page-size="20"
             layout="total,sizes, prev, pager, next, jumper"
             :total="total">
         </el-pagination>
-      </div> -->
+      </div>
+     </div>
   </div>
 </template>
 
@@ -130,7 +131,7 @@ export default {
           "content": {
               "sa_contractid": this.$route.query.id,
               "pageNumber": 1,
-              "pageSize": 30,
+              "pageSize": 20,
               "where": {
                   "condition": "",
               }
@@ -173,7 +174,8 @@ export default {
       res.data.forEach((e,index)=>{
         res.data[index].discountrate = Math.round((e.discountrate * 100)*100)/100
       })
-      this.list = this.params.content.pageNumber == 1 ? res.data : this.list.concat(res.data)
+      /*this.list = this.params.content.pageNumber == 1 ? res.data : this.list.concat(res.data)*/
+      this.list = res.data
       console.log(this.list,res.data);
       this.total = res.total
       this.totalPage = res.pageTotal

+ 49 - 3
src/HDrpManagement/contractManage/modules/detail.vue

@@ -50,8 +50,9 @@
                   </span><br><br>
                   <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
                     到表体。
-                  </span>
+                  </span> <br><br>
                 </el-radio>
+
                 <el-radio v-model="cooperateForm.isadd" label="0">
                   <span style="font-size: 16px;color: #333333">仅更新合作协议的产品折扣价格</span><br><br>
                   <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
@@ -94,7 +95,36 @@
           </template>
         </productClassList>
         <!--    产品类别折扣    -->
-        <itemClass :data="mainData" v-if="mainData.type == '项目'" :isLeader="isLeader" ></itemClass>
+        <itemClass ref="itemClass" :data="mainData" v-if="mainData.type == '项目'" :isLeader="isLeader" >
+          <template v-slot:cooperate="scope">
+            <el-button :disabled="mainData.status !== '新建'" size="small" :type="mainData.status === '新建'?'primary':''" @click="cooperateVisible = true" v-if="tool.checkAuth($route.name,'productBillManage') && isLeader">同步合作协议</el-button>
+            <el-dialog title="同步合作协议" :visible.sync="cooperateVisible" append-to-body width="703px">
+              <span style="color: #8C8C8C;font-size: 14px">请选择同步更新经销商/直销客户合作协议产品类别的方式:</span>
+              <el-form :model="cooperateForm" style="margin-top: 20px">
+                <el-radio v-model="cooperateForm.isadd" label="1" style="margin-bottom: 20px">
+                  <span style="font-size: 16px;color: #333333">同步添加合作协议产品类别及其折扣</span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                    将协议中所有产品类别及其折扣添加到表体,若表体已存在产品类别,则协议中相同产品类别的折扣
+                  </span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                    覆盖更新到表体。
+                  </span> <br><br>
+                </el-radio>
+
+                <el-radio v-model="cooperateForm.isadd" label="0">
+                  <span style="font-size: 16px;color: #333333">仅更新合作协议的产品类别折扣</span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                   将协议中与表体相同的产品类别的折扣价格覆盖更新到表体,不添加协议的产品类别。
+                  </span>
+                </el-radio>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button size="small" @click="cooperateVisible = false" class="normal-btn-width">取 消</el-button>
+                <el-button size="small" type="primary" @click="onCooperateItem" class="normal-btn-width">确 定</el-button>
+              </div>
+            </el-dialog>
+          </template>
+        </itemClass>
         <!--合同条款-->
 <!--        <contractClause :sys_enterpriseid="mainData.sys_enterpriseid" :disabled="mainData.status != '新建' || !isLeader" ref="Claus" v-if=" mainData.type == '工具借用'">
         </contractClause>-->
@@ -1512,11 +1542,27 @@ export default {
       })
       this.tool.showMessage(res,()=>{
         this.cooperateVisible = false
+        this.$refs.billno.params.content.pageNumber = 1
         this.$refs.billno.listData()
         this.queryMainData()
       })
-    }
+    },
 
+    async onCooperateItem(){
+      const res = await this.$api.requested({
+        "id": 20231208154904,
+        "content": {
+          "sa_contractid": this.$route.query.id,
+          "isadd":this.cooperateForm.isadd
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.cooperateVisible = false
+        this.$refs.itemClass.param.content.pageNumber = 1
+        this.$refs.itemClass.listData()
+        this.queryMainData()
+      })
+    }
 
 
     // async getModelList () {

+ 5 - 5
src/HDrpManagement/publicCustomer/modules/detail.vue

@@ -193,7 +193,7 @@ export default {
     async queryMainData (id) {
 
       const res = await this.$api.requested({
-        "id": "20221012164302",
+        "id": "20221011133502",
         "content": {
           "sa_customersid":this.$route.query.id
         }
@@ -202,7 +202,7 @@ export default {
        this.$refs.details.param.content.where.sa_customerpoolid = this.$route.query.tabIndex
       this.$refs.details.param.content.isExport = false
       this.mainData = Object.assign({},this.mainData,res.data)
-      this.length = this.mainData.leader.length
+      this.length = this.mainData.leader?this.mainData.leader.length:0
       this.getDataTag(this.mainData.sa_customersid)
       this.changeDataStructure()
     },
@@ -285,10 +285,10 @@ export default {
         },
         {
           label:'分配状态',
-          value:this.mainData['leader'].length !== 0 ? '已分配' : '待分配',
+          value:this.length !== 0 ? '已分配' : '待分配',
           style:function () {
             let style = {}
-            style = that.mainData['leader'].length !== 0  ? {color:'#333333'} : {color:'#3874f6'}
+            style = that.length !== 0  ? {color:'#333333'} : {color:'#3874f6'}
             return style
           }
         },
@@ -298,7 +298,7 @@ export default {
         },
         {
           label:'负责人',
-          value:this.mainData.leader.length === 0?"--":this.mainData.leader[0].name
+          value:this.mainData.leader?this.mainData.leader.length === 0?"--":this.mainData.leader[0].name:'--'
         },
       ]
     },

+ 3 - 3
src/HDrpManagement/unit/components/list.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="unit container normal-panel">
-    <el-row style="display:flex;justify-content:space-between">
-      <el-col :span="11">
+    <el-row style="display:flex;justify-content:space-between" :gutter="20">
+      <el-col :span="12">
         <p class="normal-title normal-margin">计量单位</p>
         <slot name="unitAdd" :data="unitList"/>
         <table-new-layout v-if="unitList" :layout="tablecols1" :data="unitList" :custom="false" height="calc(100vh - 250px)">
@@ -13,7 +13,7 @@
           </template>
         </table-new-layout>
       </el-col>
-      <el-col :span="11">
+      <el-col :span="12">
         <p class="normal-title normal-margin">计量单位组</p>
         <slot name="unitGroupAdd" :data="unitList"/>
         <table-new-layout v-if="unitGroupList" :layout="tablecols2" :data="unitGroupList" :custom="false" height="calc(100vh - 250px)">

+ 23 - 15
src/HManagement/task/index.vue

@@ -16,7 +16,8 @@
         param:{
           type:type
         }
-      }">
+      }"
+      >
       <template #custom>
         <div  class="mt-10">
           <label class="search__label">任务范围:</label>
@@ -57,17 +58,6 @@
           <div v-else-if="scope.data.column.columnname === 'remindday'">
             <p>{{scope.data.column.data.remindday?scope.data.column.data.remindday + '天':'无需提醒'}}</p>
           </div>
-          <div v-else-if="scope.data.column.columnname === 'applicationData'">
-            <p v-if="scope.data.column.data.systemapp">
-              <span v-if="scope.data.column.data.systemapp.length > 0">
-                <el-button type="text" @click="detailGo(scope.data.column.data)">
-                  {{scope.data.column.data.systemapp[0].systemappname}}
-                </el-button>
-              </span>
-              <span v-else>--</span>
-            </p>
-            <p v-else>--</p>
-          </div>
           <span v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
         </div>
       </template>
@@ -105,7 +95,8 @@ export default {
           value:3
         },
       ],
-      status:''
+      status:'',
+      pathData:[]
     }
   },
   methods:{
@@ -118,8 +109,14 @@ export default {
       this.$refs['basicLayout'].listData()
     },
     detailGo(data){
+      console.log(data)
       this.$store.dispatch('changeDetailDrawer',true)
-      let path = data.systemapp[0].apppath_index
+      let path = ''
+      this.pathData.forEach(item=>{
+        if (item.remarks == data.ownertable){
+          path = item.value
+        }
+      })
       let route = this.$route
       if (route.path !== path.slice(1)){
         this.oldRoute = {path:route.path,query:route.query}
@@ -132,10 +129,21 @@ export default {
           rowindex:data.rowindex
         }
       })
+    },
+    /*表名对应的跳转路径*/
+    async queryPath(){
+      const res = await this.$store.dispatch('optiontypeselect','gotopath')
+      console.log(res.data,'路径')
+      this.pathData = res.data
+      this.queryData()
+
     }
   },
   mounted () {
-    this.queryData()
+    this.queryPath()
+  },
+  created() {
+
   }
 }
 

+ 77 - 6
src/HManagement/task/modules/detail.vue

@@ -43,8 +43,8 @@
               <el-descriptions-item label-class-name="my-label" label="结束日期">{{mainData.endtime?mainData.endtime:'无限'}}</el-descriptions-item>
               <el-descriptions-item label-class-name="my-label" label="提醒时间">{{mainData.remindday? mainData.remindday + '天' :'无需提醒'}}</el-descriptions-item>
               <el-descriptions-item label-class-name="my-label" label="关联应用数据">
-                <span v-if="mainData.systemapp">
-                  <el-button type="text" v-if="mainData.systemapp.length >0" @click="onGoto">{{mainData.systemapp[0].systemappname}}</el-button>
+                <span v-if="mainData.tableName">
+                  <el-button type="text" v-if="mainData.tableName !== '--'" @click="onGoto">{{mainData.tableName}}</el-button>
                   <span v-else>--</span>
                 </span>
                 <span v-else>--</span>
@@ -92,6 +92,7 @@ export default {
       disable:false,
       team:[],
       nowUserid: JSON.parse(sessionStorage.getItem('active_account')).userid,
+      pathData:[]
     }
   },
   computed:{
@@ -111,7 +112,8 @@ export default {
         }
       })
       this.mainData = Object.assign({},this.mainData,res.data)
-      this.changeDataStructure()
+      this.queryPath()
+
       this.queryAuthority()
      /* this.$refs['details'].$refs['group'].queryGroup()*/
       console.log(this.mainData.createuserid)
@@ -202,9 +204,9 @@ export default {
         },
         {
           label:'关联应用数据',
-          value:this.mainData.systemapp?this.mainData.systemapp.length>0?this.mainData.systemapp[0].systemappname:'':'',
+          value:this.mainData.tableName?this.mainData.tableName:'--',
           style:()=>{
-            let color = this.mainData.systemapp?this.mainData.systemapp.length>0?'#3874f6':'':''
+            let color = this.mainData.tableName?'#3874f6':''
             return {color: color}
           },
         }
@@ -256,7 +258,7 @@ export default {
     },
     /*任务页面跳转*/
     onGoto(){
-      let path = this.mainData.systemapp[0].apppath_index
+      let path = this.mainData.path
       let route = this.$route
       if (route.path !== path.slice(1)){
         this.oldRoute = {path:route.path,query:route.query}
@@ -270,6 +272,75 @@ export default {
         }
       })
     },
+    /*表名对应的跳转路径*/
+    async queryPath(){
+      const res = await this.$store.dispatch('optiontypeselect','gotopath')
+      this.pathData = res.data
+      if (this.pathData){
+        console.log("执行")
+        this.pathData.forEach(item=>{
+          if (item.remarks == this.mainData.ownertable){
+            if (this.mainData.ownertable == 'sat_orderclue'){
+              this.customerPath(this.mainData.ownerid)
+            }else if (this.mainData.ownertable == 'sa_salesforecastbill'){
+              this.predictionPath(this.mainData.ownerid)
+            }else if (this.mainData.ownertable == 'sa_customers'){
+              this.customerPath(this.mainData.ownerid)
+            } else {
+              this.mainData.tableName = item.subvalues[0]
+              this.mainData.path = item.value
+              this.changeDataStructure()
+            }
+          }
+        })
+
+      }
+
+    },
+    /*判断销售线索路径*/
+    async cluePath(id){
+      const res = await this.$api.requested({
+        "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
+        "method": "selectDetail",
+        "content": {
+          "sat_orderclueid": id
+        }
+      })
+      if (res.data){
+        this.mainData.tableName = res.data.isprivate == '1' ? '销售线索':'公海线索'
+        this.mainData.path = res.data.isprivate == '1' ? '/orderclue_detail':'/clueDetail'
+        this.changeDataStructure()
+      }
+
+    },
+    /*判断销售预测路径*/
+    async predictionPath(id){
+      const res = await this.$api.requested({
+        "id": 20230705144704,
+        "content": {
+          "sa_salesforecastbillid":id
+        }
+      })
+      if (res.data){
+        this.mainData.tableName = res.data.baseonproject == '1' ? '项目成交预测':'出货开票预测'
+        this.mainData.path = res.data.baseonproject == '1' ? '/projectPredictionDetail':'/invoicePredictionDetail'
+        this.changeDataStructure()
+      }
+    },
+    /*判断客户路径*/
+    async customerPath(id){
+      const res = await this.$api.requested({
+        "id": 20221012164302,
+        "content": {
+          "sa_customersid": id
+        },
+      })
+      if (res.data){
+        this.mainData.tableName = res.data.sa_customerpoolid == '0' ? '公海客户':'我的客户'
+        this.mainData.path = res.data.sa_customerpoolid == '0' ? '/PublicCustomerDetail':'/customerDetail'
+        this.changeDataStructure()
+      }
+    }
   },
   mounted () {
     this.queryMainData(this.$route.query.id)

+ 4 - 4
src/SDrpManagement/ProductGroup/index.vue

@@ -27,7 +27,7 @@
       </selectPeople>
     </div>
     <selectClass ref="class" @clickAreaBase="clickAreaBase" @brandChange="brandChange" @onClassChange="onClassChange" @Search="Search" @clearSearch="clearSearch" @clickField="clickField" :default="true"></selectClass>
-    <div class="content" v-if="Object.keys(productGroup).length > 0">
+    <div class="content" v-if="Object.keys(productGroup).length > 0" style="padding: 0;margin-bottom: 0;height: calc(100vh - 360px)">
       <div class="group-list">
         <div class="group-item" v-for="item in productGroup" :key="item.sa_itemgroupid" @click="itemClick(item)">
           <div class="top">
@@ -43,7 +43,7 @@
       </div>
     </div>
     <el-empty description="暂无数据" v-else></el-empty>
-     <div style="text-align:center;padding-top: 16px">
+     <div style="text-align:center;padding-top: 10px;margin-bottom: -6px">
       <el-pagination
         background
         small
@@ -254,7 +254,7 @@ export default {
   box-sizing: border-box;
   background-color: transparent;
   grid-template-columns: repeat(5, 1fr); */
-  padding-top:36px;
+  /*padding-top:36px;*/
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
@@ -268,7 +268,7 @@ export default {
   transition: all 0.1s ease-in;
   cursor: pointer;
   overflow: hidden;
-  margin-bottom: 36px;
+  margin-top: 36px;
   margin-right: 16px;
 }
 .group .group-list .group-item .el-image {

+ 45 - 42
src/SDrpManagement/ProductGroup/modules/GroupDetail/groupDetail.vue

@@ -47,8 +47,8 @@
         </span>
       </div>
 
-      <div class="type">
-        <div class="content" style="max-height:300px;width:calc(100vh - 420px);overflow-y:scroll;margin-bottom: 10px;">
+
+        <div class="content" style="max-height:300px;width:100%;overflow-y:scroll;margin-bottom: 20px;">
 <!--          <p class="inline-16">更多:</p>-->
           <el-tag class="inline-16" style="margin-top: 5px;margin-bottom: 5px;width: 120px" @click="typeClick(item)" v-for="(item,index) in details" :key="index" size="small" :effect="selectProduct.itemno == item.itemno ? 'dark' : 'plain'">
             {{item.spec?item.spec.length >14?item.spec.substring(0,13)+'...':item.spec:item.spec}}
@@ -57,7 +57,7 @@
               {{item.model}}
             </span>-->
         </div>
-      </div>
+
 <!--      <div class="type">
         <div class="content normal-margin">
           <p class="inline-16">领域:</p>
@@ -65,46 +65,49 @@
           </el-tag>
         </div>
       </div>-->
-      <div style="width: calc(100vh - 420px);background: #f6f6f6;margin-bottom: 20px" v-if="selectProduct.itemextend">
-        <el-row :gutter="20" style="margin-left: 10px" v-if="selectProduct.itemextend.length">
-          <el-col :span="8" style="margin-top: 10px; " v-if="selectProduct.itemextend[0].device">
-            <span class="search__label">装置:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].device}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px" v-if="selectProduct.itemextend[0].prodline">
-            <span class="search__label">产线:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].prodline}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px" v-if="selectProduct.itemextend[0].specalnote">
-            <span class="search__label">特殊说明:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].specalnote}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px" v-if="selectProduct.itemextend[0].pressure">
-            <span class="search__label">压力等级:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].pressure}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px" v-if="selectProduct.itemextend[0].butterflyplatedrive">
-            <span class="search__label">蝶板驱动:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].butterflyplatedrive}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px" v-if="selectProduct.itemextend[0].connection">
-            <span class="search__label">连接形式:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].connection}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px;margin-bottom: 10px" v-if="selectProduct.itemextend[0].valveplatematerial">
-            <span class="search__label">阀板材质:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].valveplatematerial}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px;margin-bottom: 10px" v-if="selectProduct.itemextend[0].actuatortype">
-            <span class="search__label">执行器类型:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].actuatortype}}</span>
-          </el-col>
-          <el-col :span="8" style="margin-top: 10px;margin-bottom: 20px" v-if="selectProduct.itemextend[0].actuatorbrand">
-            <span class="search__label">执行器品牌:</span>
-            <span class="tab-color">{{selectProduct.itemextend[0].actuatorbrand}}</span>
-          </el-col>
-        </el-row>
+      <div style="padding-right: 20px">
+        <div style="width:100%;background: #f6f6f6;margin-bottom: 20px;padding: 10px" v-if="selectProduct.itemextend">
+          <el-row :gutter="20"  v-if="selectProduct.itemextend.length">
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].device">
+              <span class="search__label">装置:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].device}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].prodline">
+              <span class="search__label">产线:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].prodline}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].specalnote">
+              <span class="search__label">特殊说明:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].specalnote}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].pressure">
+              <span class="search__label">压力等级:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].pressure}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].butterflyplatedrive">
+              <span class="search__label">蝶板驱动:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].butterflyplatedrive}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].connection">
+              <span class="search__label">连接形式:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].connection}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].valveplatematerial">
+              <span class="search__label">阀板材质:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].valveplatematerial}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].actuatortype">
+              <span class="search__label">执行器类型:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].actuatortype}}</span>
+            </el-col>
+            <el-col :span="8"  v-if="selectProduct.itemextend[0].actuatorbrand">
+              <span class="search__label">执行器品牌:</span>
+              <span class="tab-color">{{selectProduct.itemextend[0].actuatorbrand}}</span>
+            </el-col>
+          </el-row>
+        </div>
       </div>
+
       <el-button class="normal-margin" type="primary" style="width:200px" icon="el-icon-shopping-cart-full" @click="addCart"  :disabled="usertype === 0 || usertype === 1">加入购物车</el-button>
       <div style="display:flex">
         <p>相关链接:&emsp;</p>

+ 48 - 4
src/SDrpManagement/QuotedPrice/detail/index.vue

@@ -19,10 +19,10 @@
         <!-- 此区域提供了自定义操作按钮 -->
         <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>
-        <check class="inline-16" v-if="tool.checkAuth($route.name,'check') && mainData.specialoffer == '1'" :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onCheck="onSuccess"></check>
-        <recheck class="inline-16" v-if="tool.checkAuth($route.name,'recheck') && mainData.specialoffer == '1'" :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onReCheck="onSuccess"></recheck>
         <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'" :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 === '审核'" :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onCheck="onSuccess"></check>
+        <recheck class="inline-16" v-if="tool.checkAuth($route.name,'recheck') && mainData.specialoffer == '1' && mainData.status === '复核'"  :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onReCheck="onSuccess"></recheck>
         <copyTo class="inline-16" v-if="tool.checkAuth($route.name,'copyTo') " :data="mainData.sa_quotedpriceid" :disabled="disabledFlag.disabled"></copyTo>
         <toVoid class="inline-16" v-if="tool.checkAuth($route.name,'toVoid') && mainData.status === '新建'" :disabled="disabledFlag.disabled" :data="mainData.sa_quotedpriceid" ></toVoid>
       </div>
@@ -43,7 +43,7 @@
                   </span><br><br>
                   <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
                     到表体。
-                  </span>
+                  </span><br><br>
                 </el-radio>
                 <el-radio v-model="cooperateForm.isadd" label="0">
                   <span style="font-size: 16px;color: #333333">仅更新合作协议的产品折扣价格</span><br><br>
@@ -67,7 +67,35 @@
         <historicalQuotation :data="mainData" v-if="flag"></historicalQuotation>
       </div>
       <div slot="slot1" class=" normal-panel">
-        <itemClass :data="mainData" :disabled="disabledFlag.disabled"></itemClass>
+        <itemClass ref="itemClass" :data="mainData" :disabled="disabledFlag.disabled">
+          <template v-slot:cooperate="scope">
+            <el-button class="inline-16" :disabled="mainData.status !== '新建'" size="small" :type="mainData.status === '新建'?'primary':''" @click="cooperateVisible = true" v-if="tool.checkAuth($route.name,'productDetails') && disabledFlag.disabled">同步合作协议</el-button>
+            <el-dialog title="同步合作协议" :visible.sync="cooperateVisible" append-to-body width="703px">
+              <span style="color: #8C8C8C;font-size: 14px">请选择同步更新经销商/直销客户合作协议产品类别的方式:</span>
+              <el-form :model="cooperateForm" style="margin-top: 20px">
+                <el-radio v-model="cooperateForm.isadd" label="1" style="margin-bottom: 20px">
+                  <span style="font-size: 16px;color: #333333">同步添加合作协议产品类别及其折扣</span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                    将协议中所有产品类别及其折扣添加到表体,若表体已存在产品类别,则协议中相同产品类别的折扣
+                  </span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                    覆盖更新到表体。
+                  </span><br><br>
+                </el-radio>
+                <el-radio v-model="cooperateForm.isadd" label="0">
+                  <span style="font-size: 16px;color: #333333">仅更新合作协议的产品类别折扣</span><br><br>
+                  <span style="font-size: 14px;color: #8C8C8C;margin: 20px 0 0 22px;padding-top: 20px">
+                   将协议中与表体相同的产品类别的折扣价格覆盖更新到表体,不添加协议的产品类别。
+                  </span>
+                </el-radio>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button size="small" @click="cooperateVisible = false" class="normal-btn-width">取 消</el-button>
+                <el-button size="small" type="primary" @click="onCooperateItem" class="normal-btn-width">确 定</el-button>
+              </div>
+            </el-dialog>
+          </template>
+        </itemClass>
       </div>
     </basicDetails>
   </div>
@@ -388,11 +416,27 @@ export default {
         }
       })
       this.tool.showMessage(res,()=>{
+        this.$refs.productList.param.content.pageNumber = 1
         this.$refs.productList.productData()
         this.cooperateVisible = false
         this.queryMainData(this.$route.query.id)
       })
     },
+    async onCooperateItem(){
+      const res = await this.$api.requested({
+        "id": 20231208161304,
+        "content": {
+          "sa_quotedpriceid": this.$route.query.id,
+          "isadd":this.cooperateForm.isadd
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$refs.itemClass.param.content.pageNumber = 1
+        this.$refs.itemClass.listData()
+        this.cooperateVisible = false
+        this.queryMainData(this.$route.query.id)
+      })
+    },
 
     /*获取安全配置信息*/
     async querySite_Parameter () {

+ 3 - 1
src/SDrpManagement/QuotedPrice/detail/modules/detailed/index.vue

@@ -48,6 +48,8 @@
         <el-descriptions-item label="提交时间">{{ basic.submitdate?basic.submitdate:"--" }}</el-descriptions-item>
         <el-descriptions-item label="审核人">{{ basic.checkby?basic.checkby:"--" }}</el-descriptions-item>
         <el-descriptions-item label="审核时间">{{ basic.checkdate?basic.checkdate:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="复核人">{{ basic.recheckby?basic.recheckby:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="复核时间">{{ basic.recheckdate?basic.recheckdate:"--" }}</el-descriptions-item>
         <el-descriptions-item label="作废原因">{{ basic.deleteReason.length !== 0?basic.deleteReason[0].deletereason:'--'}}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="转手次数">{{ data.leader.length !== 0?data.leader[0].leadernum === 0?'0':data.leader[0].leadernum:'--' }}</el-descriptions-item>
       </el-descriptions>
@@ -116,4 +118,4 @@ export default {
 
 <style scoped>
 
-</style>
+</style>

+ 3 - 3
src/SDrpManagement/QuotedPrice/detail/modules/historicalQuotation/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <tableLayout :layout="tablecols" :data="list" fixedName="" :custom="true" >
+    <table-new-layout :layout="tablecols" :data="list" fixedName="" :custom="true" :height="list.length <= 5?'280px':'calc(100vh - 330px)'">
       <template v-slot:customcol="scope" >
         <div v-if="scope.column.columnname === 'billno'" >
             <el-button type="text" @click="detailGo(scope.column.data)">
@@ -28,7 +28,7 @@
       <template v-slot:opreation="scope">
         <el-button size="mini" type="text" @click="detailGo(scope.data)">详 情</el-button>
       </template>
-    </tableLayout>
+    </table-new-layout>
     <div style="margin-top:16px;text-align:right">
       <el-pagination
           background
@@ -117,4 +117,4 @@ export default {
 
 <style scoped>
 
-</style>
+</style>

+ 3 - 3
src/SDrpManagement/QuotedPrice/detail/modules/itemClass/index.vue

@@ -26,17 +26,17 @@
       <add v-if="tool.checkAuth($route.name,'itemClassDetails') && data.status === '新建' && disabled" class="inline-16" @itemClassAdd="listData"
            @uploadData="uploadData" ref="addProduct" @closeDrawer="closeDrawer"
       ></add>
-
+      <slot name="cooperate"></slot>
     </div>
     <div class="produtMag-panel">
-      <tableLayout :layout="tablecols" checkbox="true"  :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true" fixedName="offerPrice amount" @selectionChange="selectionChange">
+      <table-new-layout :layout="tablecols" checkbox="true"  :data="list" :opwidth="200" height="calc(100vh - 388px)" :width="true" :custom="true" fixedName="offerPrice amount" @selectionChange="selectionChange">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'discountrate'">
             <el-input v-model="scope.column.data.discountrate" size="mini" placeholder="请输入折扣" @change="onChangeDiscountrate(scope.column.data.discountrate,scope.column.data,scope.$index)" :disabled="!tool.checkAuth($route.name,'itemClassDetails') || data.status !== '新建' || !disabled"></el-input>
           </div>
           <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
         </template>
-      </tableLayout>
+      </table-new-layout>
       <div style="height: 35px;margin-top: 20px">
 <!--        <div style="float: left">总金额(元):{{ totalPrice }}</div>-->
         <div style="float: right">

+ 2 - 2
src/SDrpManagement/QuotedPrice/detail/modules/productInventory/index.vue

@@ -40,7 +40,7 @@
       </importFile>
     </div>
     <div class="produtMag-panel">
-      <tableLayout :layout="tablecols" checkbox="true"  :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true" fixedName="offerPrice amount" @selectionChange="selectionChange">
+      <table-new-layout :layout="tablecols" checkbox="true"  :data="list" :opwidth="200" height="calc(100vh - 400px)" :width="true" :custom="true" fixedName="offerPrice amount" @selectionChange="selectionChange">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'qty'">
             <el-input-number :disabled="data.status !== '新建' || !tool.checkAuth($route.name,'productDetails') || !disabled" v-model="scope.column.data.qty" size="mini"  :min="scope.column.data.orderminqty" :step="scope.column.data.orderaddqty"  label="描述文字" @change="onChangeNum(scope.column.data.qty,scope.column.data,scope.$index)"></el-input-number>
@@ -75,7 +75,7 @@
           </div>
           <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
         </template>
-      </tableLayout>
+      </table-new-layout>
       <div style="height: 35px;margin-top: 20px">
         <div style="float: left">总金额(元):{{ tool.formatAmount(data.sumamount,2) }}</div>
         <div style="float: right">

+ 11 - 3
src/components/normal-basic-layout/details/index.vue

@@ -31,7 +31,15 @@
       <div v-show="isTop">
         <el-descriptions :column="5" size="mini">
           <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAData" :key="item.index" :label="item.label">
-            <span v-if="item.label === '关联应用数据'" @click="onGoto(item,item.index)" :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span>
+            <span v-if="item.label === '关联应用数据'"  :style="item.style?item.style():''">
+              <span v-if="item.value !== ''">
+                <el-button v-if="item.value !== '--'" type="text" @click="onGoto()" style="margin: 0;padding: 0">
+                  {{item.value}}
+                </el-button>
+                <span v-else>--</span>
+              </span>
+              <span v-else>--</span>
+            </span>
             <span v-else :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span>
           </el-descriptions-item>
         </el-descriptions>
@@ -345,8 +353,8 @@ export default {
 
 
     /*任务页面跳转*/
-    onGoto(row,index){
-      let path = this.mainData.systemapp[0].apppath_index
+    onGoto(){
+      let path = this.mainData.path
       let route = this.$route
       if (route.path !== path.slice(1)){
         this.oldRoute = {path:route.path,query:route.query}