Browse Source

2022-11-25 17:00

codeMan 2 years ago
parent
commit
a5f0ac0d86

+ 27 - 16
src/Form/contractManage/add.vue

@@ -1,19 +1,17 @@
 <template>
   <div>
-    <el-popover
-      placement="bottom"
-      trigger="hover">
-      <div slot="title">合同类型</div>
-      <div style="display:flex;flex-direction:column">
-        <el-button type="text" size="mini" @click="addBtn('框架')">经销商合作协议</el-button>
-        <el-button type="text" size="mini" @click="addBtn('经销项目')">经销项目协议</el-button>
-        <el-button type="text" size="mini" @click="addBtn('直销项目')">直销项目协议</el-button>
-        <el-button type="text" size="mini" @click="addBtn('工具借用')">工具使用协议</el-button>
-        <el-button type="text" size="mini" @click="addBtn('居间')">居间协议</el-button>
-
-      </div>
-      <el-button slot="reference" size="mini" type="primary">新 建</el-button>
-    </el-popover>
+    <el-dropdown size="small" :hide-on-click="false" @command="addBtn">
+      <span class="el-dropdown-link">
+        <el-button ref="btn" size="small" type="primary">新 建</el-button>
+      </span>
+      <el-dropdown-menu slot="dropdown">
+        <el-dropdown-item command="框架">经销商合作协议</el-dropdown-item>
+        <el-dropdown-item command="经销项目">经销项目协议</el-dropdown-item>
+        <el-dropdown-item command="直销项目">直销项目协议</el-dropdown-item>
+        <el-dropdown-item command="工具借用">工具使用协议</el-dropdown-item>
+        <el-dropdown-item command="居间">居间协议</el-dropdown-item>
+      </el-dropdown-menu>
+    </el-dropdown>
     <el-drawer
       title="我是标题"
       :visible.sync="drawer"
@@ -31,6 +29,7 @@
 
 <script>
 import {mapGetters} from 'vuex'
+import { log } from '@antv/g2plot/lib/utils'
 
 export default {
   components:{
@@ -39,13 +38,13 @@ export default {
   },
   data () {
     return {
-      drawer:false
+      drawer:false,
     }
   },
   computed: {
     ...mapGetters({
       DrawerShow:'DrawerShow'
-    })
+    }),
   },
   watch: {
     $route (val) {
@@ -76,4 +75,16 @@ export default {
 
 </script>
 <style scoped>
+/deep/.el-popover {
+  padding: 12px 0 !important;
+}
+.box p {
+  line-height: 40px;
+  text-align: center;
+}
+.box p:hover {
+  background: #EBF1FE;
+  color: #6191F8;
+  cursor: pointer;
+}
 </style>

+ 2 - 1
src/Form/contractManage/edit.vue

@@ -389,9 +389,10 @@ export default {
     },
     editBtn () {
       this.drawer = true
-    }
+    },
   },
   created() {
+    this.getModelList()
   },
   mounted () {
   }

+ 121 - 62
src/HDrpManagement/contractManage/components/addContract.vue

@@ -8,14 +8,19 @@
         <el-row v-if="$route.query.type == '框架'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="经销商" prop="enterprisename">
+              <el-form-item label="经销商:" prop="enterprisename">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -27,7 +32,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -39,18 +44,18 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="整体折扣" prop="discountrate">
+              <el-form-item label="整体折扣(%):" prop="discountrate">
                 <el-input type="text" size="small" v-model="form.discountrate"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <el-input style="display:none" v-model="form.begdate"></el-input>
               <time-select class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -60,7 +65,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同描述" prop="remarks">
+              <el-form-item label="合同描述:" prop="remarks">
                 <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
@@ -70,14 +75,19 @@
         <el-row v-if="$route.query.type == '经销项目'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="经销商" prop="enterprisename">
+              <el-form-item label="经销商:" prop="enterprisename">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -89,7 +99,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -101,7 +111,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -113,13 +123,13 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -129,12 +139,12 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约金额" prop="signamount">
-                <el-input readonly type="text" size="small" v-model="form.signamount"></el-input>
+              <el-form-item label="签约金额(元):" prop="signamount">
+                <el-input type="text" size="small" disabled v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同描述" prop="hrid">
+              <el-form-item label="合同描述:" prop="hrid">
                 <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
@@ -144,10 +154,15 @@
         <el-row v-if="$route.query.type == '直销项目'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -163,7 +178,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -175,7 +190,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -187,7 +202,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -196,18 +211,18 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约金额" prop="signamount">
-                <el-input type="text" readonly size="small" v-model="form.signamount"></el-input>
+              <el-form-item label="签约金额(元):" prop="signamount">
+                <el-input type="text" disabled size="small" v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="16">
-              <el-form-item label="合同描述" prop="hrid">
+              <el-form-item label="合同描述:" prop="hrid">
                 <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
@@ -217,10 +232,15 @@
         <el-row v-if="$route.query.type == '工具借用'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -236,7 +256,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -248,7 +268,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -257,18 +277,18 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="单套价格">
-                <el-input type="text" readonly size="small" v-model="form.signamount"></el-input>
+              <el-form-item label="单套价格(元)">
+                <el-input type="text" disabled size="small" v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="16">
-              <el-form-item label="合同描述" prop="hrid">
+              <el-form-item label="合同描述:" prop="hrid">
                 <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
@@ -278,14 +298,19 @@
         <el-row v-if="$route.query.type == '居间'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="110px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="居间服务商" prop="enterprisename">
+              <el-form-item label="居间服务商:" prop="enterprisename">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -297,7 +322,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -309,7 +334,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -321,7 +346,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -330,18 +355,18 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="佣金比例(%)" prop="kickback">
+              <el-form-item label="佣金比例(%):" prop="kickback">
                 <el-input type="text" size="small" v-model="form.kickback"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同描述" prop="hrid">
+              <el-form-item label="合同描述:" prop="hrid">
                 <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
@@ -351,21 +376,22 @@
     </div>
     <div class="fixed__btn__panel">
       <el-button size="small" @click="onCancel" class="normal-btn-width">取 消</el-button>
-      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" v-if="!$route.query.id">确 定</el-button>
-      <el-button size="small" type="warning" @click="save" class="normal-btn-width" v-else>保 存</el-button>
+      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
     </div>
   </div>
 </template>
 
 <script>
+import {mapGetters} from 'vuex'
+
 import selectPople from './selectSaler'
 import selectAgent from './selectAgent'
 import seleteProject from './seleteProject'
 import TimeSelect from '@/HDrpManagement/projectChange/components/TimeSelect'
-
+import selectModel from './seleteModel'
 export default {
   name: '',
-  components:{selectPople,TimeSelect,seleteProject,selectAgent,},
+  components:{selectPople,TimeSelect,seleteProject,selectAgent,selectModel},
   data () {
     var checkNumber = (rule, value, callback) => {
       if (typeof +value != 'number') {
@@ -374,8 +400,8 @@ export default {
       callback()
     }
     var NumberSize = (rule, value, callback) => {
-      if (+value > 1 || +value < 0) {
-        return callback(new Error('折扣范围(0.1-1)'));
+      if (+value > 100 || +value < 1 && value) {
+        return callback(new Error('折扣范围(1-100)'));
       }
       callback()
     }
@@ -384,6 +410,8 @@ export default {
       salerVisible:false,
       projectVisible:false,
       accountVisible:false,
+      modelVisible:false,
+      modelList:[],
       form: {
         "sa_contractid": 0,
         "sys_enterpriseid": "",
@@ -404,7 +432,8 @@ export default {
         "saler_name":'',
         "enterprisename":'',
         "sys_printmodelid": '',//可选
-        "typemx":""//可选
+        "typemx":"",//可选
+        "modelname":""
       },
       rules: {
         sys_enterpriseid: [
@@ -431,6 +460,9 @@ export default {
         salername: [
           { required: true, message: '请选择经销商', trigger: 'change' },
         ],
+        modelname: [
+          { required: true, message: '请选择打印模板', trigger: 'change' },
+        ],
         discountrate: [
           { validator: checkNumber, trigger: 'blur'},
           { validator: NumberSize, trigger: 'blur'}
@@ -471,8 +503,14 @@ export default {
     };
   },
   computed: {
+    ...mapGetters({
+      DrawerShow:'DrawerShow'
+    })
   },
   watch: {
+    DrawerShow (val) {
+      !val ? this.$refs.form.resetFields() : ''
+    }
   },
   created () {
   },
@@ -503,7 +541,7 @@ export default {
       })
     },
     onCancel () {
-      this.$store.dispatch('changeDetailDrawer',false)
+      this.$store.dispatch('DrawerShowChange',false)
     },
     agentChange (data) {
       this.form.sys_enterpriseid = data[0].sys_enterpriseid
@@ -530,12 +568,33 @@ export default {
       this.form.sys_enterpriseid = data[0].sys_enterpriseid
       this.agentVisible = false
     },
+    modelChange (data) {
+      this.form.modelname = data.modelname
+      console.log(this.form.modelname);
+      
+      this.form.sys_printmodelid = data.sys_printmodelid
+      this.modelVisible = false
+    },
     clearTime () {
 
     },
     timeChange (time) {
       this.form.begdate = time[0]
       this.form.enddate = time[1]
+    },
+    async getModelList () {
+      let res = await this.$api.requested({
+        "id": 20221121155801,
+        "content": { 
+          "pageNumber": 1,
+            "pageSize": 999999,
+            "where":{
+            "condition":""
+            }
+        }
+      })
+      this.modelList = res.data
+      console.log(this.modelList);
     }
   },
 };

+ 119 - 76
src/HDrpManagement/contractManage/components/editContract.vue

@@ -1,19 +1,24 @@
 <template>
   <div>
-    <el-button @click="drawer=true" size="mini">编 辑</el-button>
-    <el-drawer size="30%" append-to-body :visible.sync="drawer">
+    <el-button @click="editBtn" size="mini">编 辑</el-button>
+    <el-drawer size="30%" append-to-body :visible.sync="drawer" v-if="form.sa_contractid">
       <!--合作协议-->
         <el-row v-if="$route.query.type == '框架'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="经销商" prop="enterprisename">
+              <el-form-item label="经销商:" prop="enterprisename">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -25,7 +30,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -37,18 +42,18 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="整体折扣" prop="discountrate">
+              <el-form-item label="整体折扣(%):" prop="discountrate">
                 <el-input type="text" size="small" v-model="form.discountrate"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <el-input style="display:none" v-model="form.begdate"></el-input>
-              <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
+                <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -58,8 +63,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同描述" prop="remarks">
-                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              <el-form-item label="合同描述:" prop="remarks">
+                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -68,14 +73,19 @@
         <el-row v-if="$route.query.type == '经销项目'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="经销商" prop="enterprisename">
+              <el-form-item label="经销商:" prop="enterprisename">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -87,7 +97,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -99,7 +109,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -111,13 +121,13 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -127,13 +137,13 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约金额">
+              <el-form-item label="签约金额(元):">
                 <el-input type="text" readonly size="small" placeholder="产品清单总额(自动计算)" v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同描述" prop="hrid">
-                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              <el-form-item label="合同描述:" prop="hrid">
+                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -142,10 +152,15 @@
         <el-row v-if="$route.query.type == '直销项目'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -161,7 +176,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -173,7 +188,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -185,7 +200,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -194,19 +209,19 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约金额">
+              <el-form-item label="签约金额(元):">
                 <el-input type="text" readonly size="small" placeholder="产品清单总额(自动计算)" v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="16">
-              <el-form-item label="合同描述" prop="hrid">
-                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              <el-form-item label="合同描述:" prop="hrid">
+                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -215,10 +230,15 @@
         <el-row v-if="$route.query.type == '工具借用'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -234,7 +254,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -246,7 +266,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -254,26 +274,20 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="签约金额">
-                <el-input type="text" readonly size="small" placeholder="产品清单总额(自动计算)" v-model="form.signamount"></el-input>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="单套价格">
-                <el-input type="text" readonly size="small"></el-input>
+              <el-form-item label="单套价格(元):">
+                <el-input type="text" readonly size="small" v-model="form.signamount"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="16">
-              <el-form-item label="合同描述" prop="hrid">
-                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              <el-form-item label="合同描述:" prop="hrid">
+                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -282,14 +296,19 @@
         <el-row v-if="$route.query.type == '居间'">
           <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="110px" size="small">
             <el-col :span="24">
-              <el-form-item label="合同模板" prop="sys_printmodelid">
-                <el-select v-model="form.sys_printmodelid">
-                  <el-option label="一一一" value="111"></el-option>
-                </el-select>
+              <el-form-item label="合同模板:" prop="modelname">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="modelVisible"
+                  width="600">
+                  <selectModel ref="member" :param="agentListPrams" :radio="true" @onSelect="modelChange" @onCancel="modelVisible = false"></selectModel>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="modelVisible=true;salerVisible = false;projectVisible=false;agentVisible=false" v-model="form.modelname"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="居间服务商" prop="sys_enterpriseid">
+              <el-form-item label="居间服务商:" prop="sys_enterpriseid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -301,7 +320,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="项目名称" prop="sa_projectid">
+              <el-form-item label="项目名称:" prop="sa_projectid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -313,7 +332,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="业务员" prop="saler_hrid">
+              <el-form-item label="业务员:" prop="saler_hrid">
                 <el-popover
                   placement="bottom"
                   trigger="manual"
@@ -325,7 +344,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="签约日期" prop="signdate">
+              <el-form-item label="签约日期:" prop="signdate">
                 <el-date-picker
                   v-model="form.signdate"
                   type="date"
@@ -334,19 +353,19 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="佣金比例(%)" prop="kickback">
+              <el-form-item label="佣金比例(%):" prop="kickback">
                 <el-input type="text" size="small" v-model="form.kickback"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="合同有效期" prop="begdate">
+              <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
               <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
               </el-form-item>
             </el-col>
             <el-col :span="16">
-              <el-form-item label="合同描述" prop="hrid">
-                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              <el-form-item label="合同描述:" prop="hrid">
+                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -363,19 +382,34 @@
 import selectPople from './selectSaler'
 import selectAgent from './selectAgent'
 import seleteProject from './seleteProject'
+import selectModel from './seleteModel'
 import TimeSelect from '@/HDrpManagement/projectChange/components/TimeSelect'
 import { log } from '@antv/g2plot/lib/utils'
 
 export default {
+  props:['data'],
   name: '',
-  components:{selectPople,TimeSelect,seleteProject,selectAgent},
+  components:{selectPople,TimeSelect,seleteProject,selectAgent,selectModel},
   data () {
+    var checkNumber = (rule, value, callback) => {
+      if (typeof +value != 'number') {
+        return callback(new Error('请填写数字'));
+      }
+      callback()
+    }
+    var NumberSize = (rule, value, callback) => {
+      if (+value > 100 || +value < 1 && value) {
+        return callback(new Error('折扣范围(1-100)'));
+      }
+      callback()
+    }
     return {
       drawer:false,
       agentVisible:false,
       salerVisible:false,
       projectVisible:false,
       accountVisible:false,
+      modelVisible:false,
       form: {
         "sa_contractid": 0,
         "sys_enterpriseid": "",
@@ -426,6 +460,13 @@ export default {
         enterprisename: [
           { required: true, message: '请选择经销商', trigger: 'change' },
         ],
+        modelname: [
+          { required: true, message: '请选择打印模板', trigger: 'change' },
+        ],
+        discountrate: [
+          { validator: checkNumber, trigger: 'blur'},
+          { validator: NumberSize, trigger: 'blur'}
+        ],
       },
       salerListParams: {
         "id": 20221122153902,
@@ -468,18 +509,14 @@ export default {
   created () {
   },
   mounted () {
-    this.getDetail()
   },
   methods: {
-    async getDetail () {
-      let res = await this.$api.requested({
-        "id": 20221121195102,
-        "content": {
-            "sa_contractid": this.$route.query.id
-        },
+    editBtn () {
+      this.form = Object.assign({},this.form,this.data)
+      this.drawer = true
+      this.$nextTick(() => {
+        this.$refs.timeSelect.time = [this.form.begdate,this.form.enddate]
       })
-      this.form = Object.assign({},this.form,res.data)
-      this.$refs.TimeSelect.time = [this.form.begdate,this.form.enddate]
     },
     async onSubmit () {
       this.$refs.form.validate(async val => {
@@ -534,6 +571,11 @@ export default {
       this.form.sys_enterpriseid = data[0].sys_enterpriseid
       this.agentVisible = false
     },
+    modelChange (data) {
+      this.form.modelname = data.modelname
+      this.form.sys_printmodelid = data.sys_printmodelid
+      this.modelVisible = false
+    },
     clearTime () {
 
     },
@@ -557,4 +599,5 @@ export default {
 /deep/.el-select,.el-input,.el-date-editor {
   width: 100% !important;
 }
+
 </style>

+ 142 - 0
src/HDrpManagement/contractManage/components/productClassList/addProduct.vue

@@ -0,0 +1,142 @@
+<template>
+  <div>
+    <el-button type="primary" size="small" :disabled="disabled" @click="addBtn">添 加</el-button>
+    <el-drawer append-to-body size="80%" title="产品清单" :visible.sync="drawer">
+      <el-input size="small" style="width:200px;margin-bottom:10px;margin-left:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="getProductList(params.content.pageNumber = 1)" @keyup.native.enter="getProductList(params.content.pageNumber = 1)" clearable></el-input>
+      <Table ref="table" id="itemclassid" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData">
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname == 'attinfos'">
+            <previewImage 
+              v-if="scope.column.data.attinfos[0]" 
+              style="width:80px;height:80px;margin-top:0px" 
+              class="image" 
+              :image="scope.column.data.attinfos[0]" 
+              :list="scope.column.data.attinfos" 
+              :deletebtn="false"
+            ></previewImage>
+          </div>
+          <div v-else-if="scope.column.columnname == 'brand'">
+            {{scope.column.data[scope.column.columnname][0] ? scope.column.data[scope.column.columnname][0].brandname : '--'}}
+          </div>
+          <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
+          <span v-if="!scope.column.data[scope.column.columnname]">--</span>
+        </template>
+      </Table>
+      <div class="container normal-panel" style="text-align:right">
+        <el-pagination
+            style="text-align:right"
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="params.content.pageNumber"
+            :page-sizes="[20, 50, 100, 200]"
+            layout="total,sizes, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="onSumit">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import Table from './table'
+import previewImage from '@/components/previewImage/index'
+export default {
+  props:['disabled'],
+  name: '',
+  components:{Table,previewImage},
+  data() {
+    return {
+      drawer:false,
+      form:{
+        qty:'',
+        discountrate:'',
+        price:'',
+
+      },
+      tablecols:[],
+      productList:[],
+      itemno:'',
+      total:0,
+      params: {
+        "id": 20221124140102,
+        "content": {
+            "sa_contractid": '',
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      }
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['productClassTable'].tablecols
+  },
+  methods: {
+    addBtn () {
+      this.drawer = true
+      this.getProductList()
+    },
+    async getProductList () {
+      this.params.content.sa_contractid = this.$route.query.id
+      let res = await this.$api.requested(this.params)
+      this.productList = res.data
+      this.total = res.total
+      console.log(this.productList);
+      
+    },
+    async onSumit () {
+      let item = this.$refs.table.allArr.map(item => {
+        return {
+          "sa_contract_itemsaleclassid": 0,
+          "itemclassid": item.itemclassid,
+          "discountrate": '1'
+        }
+      })
+      
+      let res = await this.$api.requested({
+        "id": 20221124110202,
+        "content": {
+            "sa_contractid": this.$route.query.id,
+            "items": item
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.drawer = false
+        this.$emit('onSuccess')
+      })
+    },
+    upDateData (data) {
+      console.log(data);
+      
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+    },
+  },
+};
+</script>
+
+<style scoped>
+/deep/.el-drawer__header {
+  color: #333;
+  font-size: 16px;
+  font-weight: 700;
+}
+</style>

+ 139 - 0
src/HDrpManagement/contractManage/components/productClassList/productClassList.vue

@@ -0,0 +1,139 @@
+<template>
+  <div>
+    <div>
+      <div class="flex-align-center" style="margin-bottom:10px">
+        <el-input size="small" style="width:200px;margin-right:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="listData(params.content.pageNumber = 1)" @keyup.native.enter="listData(params.content.pageNumber = 1)" clearable></el-input>
+        <slot name="addProduct"/>
+      </div>
+      <tableLayout :layout="tablecols" :data="list" :opwidth="200" :width="false" height="calc(100vh - 550px)" :custom="true" fixedName="operation discountrate" >
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname == 'discountrate'">
+            <el-input size="mini" v-if="editIndex == scope.column.data.sa_contract_itemsid" v-model="form.discountrate" @input="discountrateChange($event,scope.column.data)"></el-input>
+            <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
+          </div>
+          <div v-else-if="scope.column.columnname == 'brand'">
+            {{scope.column.data[scope.column.columnname][0].brandname}}
+          </div>
+          <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
+        </template>
+        <template v-slot:opreation="scope">
+          <el-button v-if="editIndex == scope.data.sa_contract_itemsid" type="text" size="mini" @click="save(scope.data)" class="inline-16">保 存</el-button>
+          <slot name="edit" :data="scope.data" v-else></slot>
+          <slot name="del" :data="scope.data"></slot>
+          <!-- <edit :data="scope.data"></edit> -->
+        </template>
+      </tableLayout>
+    </div>
+    <div style="margin-top:16px;text-align:right">
+      <el-pagination
+          background
+          small
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="params.content.pageNumber"
+          :page-size="params.content.pageSize"
+          layout="total, prev, pager, next, jumper"
+          :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+// import edit from './editProduct'
+import addProduct from './addProduct'
+import previewImage from '@/components/previewImage/index'
+export default {
+  components: {addProduct,previewImage},
+  name: '',
+  data() {
+    return {
+      list:[],
+      params: {
+          "id": 20221124135602,
+          "content": {
+              "sa_contractid": '',
+              "pageNumber": 1,
+              "pageSize": 20,
+              "where": {
+                  "condition": "",
+              }
+          },
+      },
+      form: {
+        discountrate:'',
+      },
+      tablecols:[],
+      total:0,
+      editIndex:'',
+      itemclassid:''
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    if (this.$route.query.id) this.listData()
+    this.tablecols = this.tool.tabelCol(this.$route.name).productClassTable.tablecols
+  },
+  methods: {
+    async listData(){
+      this.params.content.sa_contractid = this.$route.query.id
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+      this.$emit('priceChange')
+    },
+    qtyChange (num) {
+      this.form.qty = num
+      console.log(num);
+      
+    },
+    handleChange(num) {
+      console.log(num);
+      
+    },
+    discountrateChange (num,data) {
+      this.form.discountrate = num      
+      this.form.price = this.form.discountrate * data.marketprice
+    },
+    priceChange (num,data) {
+      this.form.price = num
+      this.form.discountrate = this.form.price / data.marketprice
+      console.log(this.form.price,data.marketprice);
+      
+    },
+    async save (data) {
+      return console.log(data);
+      
+      let res = await this.$api.requested({
+        "id":20221124110202,
+        "content": {
+          "sa_contract_itemsaleclassid": data.sa_contract_itemsaleclassid,
+          "sa_contractid": this.$route.query.id,
+          "itemclassid": data.itemclassid,
+          "discountrate": this.form.discountrate
+        }
+      })
+      this.tool.showMessage(res,() => {
+        this.editIndex = ''
+        this.listData()
+        this.$emit('editSuccess',res.data.signamount)
+      })
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+    },
+  },
+};
+</script>
+
+<style scoped>
+
+</style>

+ 93 - 0
src/HDrpManagement/contractManage/components/productClassList/table.vue

@@ -0,0 +1,93 @@
+<template>
+  <div>
+    <el-table ref="tables"  @select="aaaa" @select-all="selectAll" v-loading="loading" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" :height="height" style="width:100%"  border>
+        <el-table-column
+        type="selection"
+        width="45"
+        align="center"
+        fixed>
+      </el-table-column>
+      <el-table-column :show-overflow-tooltip="col.title == '来源' || col.title == '地址' || col.title == '备注'" v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width" :fixed="col.columnname === fixedName?'right':false">
+        <template slot-scope="scope">
+          <!-- 自定义表格显示内容 -->
+          <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
+          <!-- 否则就是默认 -->
+          <span v-else>{{scope.row[col.columnname]}}</span>
+          <!-- 操作结构内容 -->
+          <slot v-if="col.columnname === 'operation'" name="opreation" :data="scope.row"></slot>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex"
+export default {
+  /*
+    layout:表结构数据;
+    data:表渲染数据;
+    custom:是否启用自定义结构;
+    opwidth:操作列宽度
+  */
+  props:['layout','data','custom','height','fixedName','id'],
+  data () {
+    return {
+      list:[],
+      allArr:[]
+    }
+  },
+  computed:{
+    ...mapGetters({
+      loading:'loading'
+    })
+  },
+  watch: {
+    data (val) {
+      this.data.forEach((row) => {
+        this.allArr.forEach(item => {
+          if (row[this.id] == item[this.id]) {
+            this.$nextTick(() => {
+              this.$refs["tables"].toggleRowSelection(row, true);
+            })
+          }
+        })
+      });    
+    },
+    allArr (val) {
+      this.$emit('upDateData',val)
+    }
+  },
+  methods:{
+    aaaa(e,a) {
+      let index = this.allArr.findIndex(v=>v[this.id] == a[this.id])
+      if(index == -1) {
+        this.allArr.push(a)
+      } else {
+        this.allArr.splice(index,1)
+      }
+      console.log(this.allArr);
+      
+    },
+    selectAll (val) {
+      if (val.length == 0) {
+        this.data.forEach(item => {
+          this.allArr.splice(item,1)
+        })
+      } else {
+        val.forEach(item => {
+          let res = this.allArr.every(item2 => item[this.id] != item2[this.id])
+          res ? this.allArr.push(item) : ''
+        })
+      }
+    },
+  },
+}
+
+</script>
+<style scoped>
+
+/deep/.el-table__header .DisableSelection > .cell {
+  display: none !important;
+}
+</style>

+ 2 - 5
src/HDrpManagement/contractManage/components/productDetailList/addProduct.vue

@@ -2,6 +2,7 @@
   <div>
     <el-button type="primary" size="small" :disabled="disabled" @click="addBtn">添 加</el-button>
     <el-drawer append-to-body size="80%" title="产品清单" :visible.sync="drawer">
+      <el-input size="small" style="width:200px;margin-bottom:10px;margin-left:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="getProductList(params.content.pageNumber = 1)" @keyup.native.enter="getProductList(params.content.pageNumber = 1)" clearable></el-input>
       <Table ref="table" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'attinfos'">
@@ -85,11 +86,7 @@ export default {
   },
   methods: {
     addBtn () {
-      this.$route.query.id ? this.drawer = true : this.$message({
-        title:'提示',
-        message: '请先保存合同',
-        type:'warning'
-      })
+      this.drawer = true
       this.getProductList()
     },
     async getProductList () {

+ 8 - 5
src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue

@@ -1,8 +1,11 @@
 <template>
   <div>
     <div>
-      <slot name="addProduct"/>
-      <tableLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 550px)" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
+      <div class="flex-align-center" style="margin-bottom:10px">
+        <el-input size="small" style="width:200px;margin-right:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="listData(params.content.pageNumber = 1)" @keyup.native.enter="listData(params.content.pageNumber = 1)" clearable></el-input>
+        <slot name="addProduct"/>
+      </div>
+      <tableLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
         <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="form.qty" @change="qtyChange" :min="1" :max="10" label="描述文字"></el-input-number>
@@ -102,7 +105,7 @@ export default {
       const res = await this.$api.requested(this.params)
       this.list = res.data
       this.total = res.total
-      console.log('触发了');
+      this.$emit('priceChange')
     },
     qtyChange (num) {
       this.form.qty = num
@@ -115,11 +118,11 @@ export default {
     },
     discountrateChange (num,data) {
       this.form.discountrate = num      
-      this.form.price = this.form.discountrate * data.marketprice
+      this.form.price = this.form.discountrate / 100 * data.marketprice
     },
     priceChange (num,data) {
       this.form.price = num
-      this.form.discountrate = this.form.price / data.marketprice
+      this.form.discountrate = this.form.price / data.marketprice * 100
       console.log(this.form.price,data.marketprice);
       
     },

+ 2 - 5
src/HDrpManagement/contractManage/components/productList/addProduct.vue

@@ -2,6 +2,7 @@
   <div>
     <el-button type="primary" size="small" :disabled="disabled" @click="addBtn">添 加</el-button>
     <el-drawer append-to-body size="80%" title="产品清单" :visible.sync="drawer">
+      <el-input size="small" style="width:200px;margin-bottom:10px;margin-left:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="getProductList(params.content.pageNumber = 1)" @keyup.native.enter="getProductList(params.content.pageNumber = 1)" clearable></el-input>
       <Table ref="table" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'attinfos'">
@@ -84,11 +85,7 @@ export default {
   },
   methods: {
     addBtn () {
-      this.$route.query.id ? this.drawer = true : this.$message({
-        title:'提示',
-        message: '请先保存合同',
-        type:'warning'
-      })
+      this.drawer = true
       this.getProductList()
     },
     async getProductList () {

+ 5 - 5
src/HDrpManagement/contractManage/components/productList/productBillno.vue

@@ -2,10 +2,10 @@
   <div>
     <div>
       <div class="flex-align-center" style="margin-bottom:10px">
-        <el-input size="small" style="width:200px;margin-right:10px" v-model="params.content.condition" placeholder="输入搜索内容" @clear="listData(params.content.pageNumber = 1)" @keyup.native.enter="listData(params.content.pageNumber = 1)" clearable></el-input>
+        <el-input size="small" style="width:200px;margin-right:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="listData(params.content.pageNumber = 1)" @keyup.native.enter="listData(params.content.pageNumber = 1)" clearable></el-input>
         <slot name="addProduct"/>
       </div>
-      <tableLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 550px)" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
+      <tableLayout :layout="tablecols" :data="list" :width="true" :opwidth="200" height="calc(100vh - 550px)" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
         <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="form.qty" @change="qtyChange" :min="1" :max="10" label="描述文字"></el-input-number>
@@ -105,7 +105,7 @@ export default {
       const res = await this.$api.requested(this.params)
       this.list = res.data
       this.total = res.total
-      console.log('触发了');
+      this.$emit('priceChange')
     },
     qtyChange (num) {
       this.form.qty = num
@@ -118,11 +118,11 @@ export default {
     },
     discountrateChange (num,data) {
       this.form.discountrate = num      
-      this.form.price = this.form.discountrate * data.marketprice
+      this.form.price = this.form.discountrate / 100 * data.marketprice
     },
     priceChange (num,data) {
       this.form.price = num
-      this.form.discountrate = this.form.price / data.marketprice
+      this.form.discountrate = this.form.price / data.marketprice * 100
       console.log(this.form.price,data.marketprice);
       
     },

+ 99 - 0
src/HDrpManagement/contractManage/components/seleteModel.vue

@@ -0,0 +1,99 @@
+<template>
+  <div>
+      <div>
+        <div class="inline-16" style="margin-bottom:10px">
+          <el-input suffix-icon="el-icon-search" size="small" v-model="params.content.where.condition" placeholder="产品名称,编号" @keyup.enter.native="queryEnterpriseArchives(params.content.pageNumber = 1)" @clear="queryEnterpriseArchives(params.content.pageNumber = 1)" clearable></el-input> 
+        </div>
+        <el-table
+          :data="ENlist"
+          stripe
+          style="width: 100%"
+          height="300"
+          border>
+          <el-table-column
+            prop="modelname"
+            label="模板名称"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="systemappname"
+            label="应用"
+            width="180">
+          </el-table-column>
+          <el-table-column>
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" @click="rowClick(scope.row)">选 择</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div style="display:flex;justify-content:space-between;margin-top:16px;">
+          <div style="text-align:left">
+          <el-pagination
+              background
+              small
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="params.content.pageNumber"
+              :page-size="params.content.pageSize"
+              layout="total, prev, pager, next"
+              :total="total">
+            </el-pagination>
+          </div>
+          <el-button size="mini" @click="$emit('onCancel')">取消</el-button>
+        </div>
+      </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      ENlist:[],
+      total:0,
+      currentPage:0,
+      form:{},
+      params:{
+        "id": 20221121155801,
+        "content": { 
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where":{
+          "condition":""
+          }
+        }
+      },
+      selected:''
+    }
+  },
+  methods:{
+    async queryEnterpriseArchives () {
+      const res = await this.$api.requested(this.params)
+      this.ENlist = res.data
+      this.total = res.total
+      console.log(this.ENlist);
+      
+    },
+    handleSizeChange(val) {
+      this.params.content.pageSize = val
+      this.queryEnterpriseArchives()
+    },
+    handleCurrentChange(val) {
+      this.params.content.pageNumber = val
+      this.queryEnterpriseArchives()
+    },
+    rowClick (row) {
+      this.$emit('onSelect',row)
+    },
+    onCancel () {
+      this.$emit('onCancel')
+    }
+  },
+  mounted () {
+    this.queryEnterpriseArchives()
+  }
+}
+
+</script>
+<style>
+</style>

+ 36 - 21
src/HDrpManagement/contractManage/components/submitCheck.vue

@@ -1,12 +1,18 @@
 <template>
-  <div class="inline-16">
-    <!-- <el-popconfirm :title="data.status=='新建' ? '确定提交当前数据吗?' : '确定通过审核吗?'" @confirm="deleteRow">
-      <el-button size="mini" slot="reference" @click="type='submit'" v-if="data.status=='新建'">提交</el-button>
-      <el-button size="mini" slot="reference" @click="type='check'" v-if="data.status=='已提交'">审核</el-button>
-    </el-popconfirm> -->
-    <el-popconfirm title="确定删除当前产品吗?" @confirm="deleteRow()" v-if="data.status != '审核'">
-      <el-button size="mini" slot="reference">{{data.status=='新建' ? '提交' : data.status=='已提交' ? '审核' : ''}}</el-button>
+  <div class="inline-16" v-if="data.status">
+    <el-popconfirm title="确定提交当前合同吗?" @confirm="submit">
+      <el-button size="mini" slot="reference" v-if="data.status=='新建'">提 交</el-button>
     </el-popconfirm>
+
+    <el-dropdown :hide-on-click="false" @command="check">
+      <span class="el-dropdown-link">
+        <el-button size="mini" v-if="data.status == '已提交'">审 核</el-button>
+      </span>
+      <el-dropdown-menu slot="dropdown">
+        <el-dropdown-item command="1">通过</el-dropdown-item>
+        <el-dropdown-item command="0">退回</el-dropdown-item>
+      </el-dropdown-menu>
+    </el-dropdown>
   </div>
 </template>
 
@@ -16,6 +22,7 @@ export default {
   name: '',
   data() {
     return {
+      checkVisible:false
     };
   },
   computed:{
@@ -23,8 +30,7 @@ export default {
   watch:{
   },
   methods: {
-    async deleteRow () {
-      if (this.data.status == '新建') {
+    async submit () {
         let res = await this.$api.requested({
           "id": 20221121202802,
           "content": {
@@ -34,22 +40,31 @@ export default {
         this.tool.showMessage(res,() => {
           this.$emit('onSuccess')
         })
-      } else {
-        let res = await this.$api.requested({
-          "id": 20221121203102,
-          "content": {
-              "sa_contractids": [this.data.sa_contractid]
-          },
-        })
-        this.tool.showMessage(res,() => {
-          this.$emit('onSuccess')
-        })
-      }
+    },
+    async check (num) {
+      let res = await this.$api.requested({
+        "id": 20221121203102,
+        "content": {
+            "type":num,//0:不通过,1:通过
+            "sa_contractids": [this.data.sa_contractid]
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.$emit('onSuccess')
+      })
     },
   },
 };
 </script>
 
 <style scoped>
-
+.box p {
+  line-height: 40px;
+  text-align: center;
+}
+.box p:hover {
+  background: #EBF1FE;
+  color: #6191F8;
+  cursor: pointer;
+}
 </style>

+ 2 - 5
src/HDrpManagement/contractManage/components/toolList/addTool.vue

@@ -2,6 +2,7 @@
   <div>
     <el-button type="primary" size="small" :disabled="disabled" @click="addBtn">添 加</el-button>
     <el-drawer append-to-body size="80%" title="产品清单" :visible.sync="drawer">
+      <el-input size="small" style="width:200px;margin-bottom:10px;margin-left:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="getProductList(params.content.pageNumber = 1)" @keyup.native.enter="getProductList(params.content.pageNumber = 1)" clearable></el-input>
       <Table ref="table" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'attinfos'">
@@ -85,11 +86,7 @@ export default {
   },
   methods: {
     addBtn () {
-      this.$route.query.id ? this.drawer = true : this.$message({
-        title:'提示',
-        message: '请先保存合同',
-        type:'warning'
-      })
+      this.drawer = true  
       this.getProductList()
     },
     async getProductList () {

+ 6 - 3
src/HDrpManagement/contractManage/components/toolList/toolList.vue

@@ -1,8 +1,11 @@
 <template>
   <div>
     <div>
-      <slot name="addProduct"/>
-      <tableLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 550px)" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
+      <div class="flex-align-center" style="margin-bottom:10px">
+        <el-input size="small" style="width:200px;margin-right:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="listData(params.content.pageNumber = 1)" @keyup.native.enter="listData(params.content.pageNumber = 1)" clearable></el-input>
+        <slot name="addProduct"/>
+      </div>
+      <tableLayout :layout="tablecols" :data="list" :opwidth="200" :width="true" height="calc(100vh - 550px)" :custom="true" fixedName="operation qty marketprice discountrate price countPrice" >
         <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="form.qty" @change="qtyChange" :min="1" :max="10" label="描述文字"></el-input-number>
@@ -102,7 +105,7 @@ export default {
       const res = await this.$api.requested(this.params)
       this.list = res.data
       this.total = res.total
-      console.log('触发了');
+      this.$emit('priceChange')
     },
     qtyChange (num) {
       this.form.qty = num

+ 7 - 1
src/HDrpManagement/contractManage/index.vue

@@ -60,7 +60,6 @@
             clearable
             @change="$refs.list.param.content.where.status=status;$refs.list.listData()"
           >
-            <el-option label="全部" value="" ></el-option>
             <el-option label="新建" value="新建" ></el-option>
             <el-option label="审核" value="审核" ></el-option>
             <el-option label="已提交" value="已提交" ></el-option>
@@ -74,6 +73,13 @@
           <span v-else-if="scope.data.column.data[[scope.data.column.columnname]]=='已提交'" style="color: red;">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
           <span v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'type'">
+          <span v-if="scope.data.column.data[[scope.data.column.columnname]] == '框架'">经销商合作协议</span>
+          <span v-else-if="scope.data.column.data.typemx == '经销'">经销项目协议</span>
+          <span v-else-if="scope.data.column.data.typemx == '直销'">直销项目协议</span>
+          <span v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '工具借用'">工具使用协议</span>
+          <span v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '居间'">居间协议</span>
+        </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
         </div>

+ 317 - 67
src/HDrpManagement/contractManage/modules/detail.vue

@@ -15,13 +15,13 @@
       <div slot="tags">
       </div>
       <div slot="customOperation" >
-        <editBtn v-if="tool.checkAuth($route.name,'update')" @onSuccess="queryMainData" :data="mainData" class="inline-16"/>
+        <editBtn :modelList="modelList" v-if="tool.checkAuth($route.name,'update')" @onSuccess="queryMainData" :data="mainData" class="inline-16"/>
         <Del :idName="20221121202502" :id="mainData.sa_contractid" idKey="sa_contractids" class="inline-16" v-if="tool.checkAuth($route.name,'delete') && mainData.type == '新建'"/>
         <submit-check :data="mainData" @onSuccess="queryMainData" />
       </div>
       <div slot="slot0" >
         <!--产品清单表-->
-        <productBillno ref="billno" @editSuccess="form.signamount=$event" v-if="mainData.type == '项目'">
+        <productBillno ref="billno" @priceChange="queryMainData" v-if="mainData.type == '项目'">
           <addProduct :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.billno.listData()"/>
           <template v-slot:edit="scope">
             <el-button 
@@ -36,8 +36,8 @@
           </template>
         </productBillno>
         <!--产品明细折扣表-->
-        <productDetailList ref="productDetailList" @editSuccess="queryMainData" v-if="mainData.type == '框架'">
-          <addProductDetail style="margin-bottom:16px" :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.productDetailList.listData()"/>
+        <productDetailList ref="productDetailList" v-if="mainData.type == '框架'" @priceChange="queryMainData">
+          <addProductDetail :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.productDetailList.listData()"/>
           <template v-slot:edit="scope">
             <el-button 
               class="inline-16" 
@@ -53,8 +53,8 @@
           </template>
         </productDetailList>
         <!--工具清单-->
-        <toolList ref="toolList" @editSuccess="queryMainData" v-if="mainData.type == '工具借用'">
-          <addTool style="margin-bottom:16px" :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.toolList.listData()"/>
+        <toolList ref="toolList" v-if="mainData.type == '工具借用'" @priceChange="queryMainData">
+          <addTool :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.toolList.listData()"/>
           <template v-slot:edit="scope">
             <el-button 
               class="inline-16" 
@@ -71,6 +71,21 @@
         </toolList>
       </div>
       <div slot="slot1" >
+        <!--产品类别折扣表-->
+        <productClassList ref="classList" @priceChange="queryMainData" v-if="mainData.type == '框架'">
+          <addClass :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.classList.listData()"/>
+          <template v-slot:edit="scope">
+            <el-button 
+              class="inline-16" 
+              :disabled="mainData.status != '新建'" 
+              type="text" size="mini" slot="edit" 
+              @click="$refs.classList.editIndex = scope.data.sa_contract_itemsid;$refs.classList.form = Object.assign({},$refs.classList.form,scope.data)"
+            >编 辑</el-button>
+          </template>
+          <template v-slot:del="scope">
+            <delete-btn :nameId="20221124111202" :disabled="mainData.status != '新建'" nameKey="sa_contract_itemsaleclassids" :id="scope.data.sa_contract_itemsaleclassid" @deleteSuccess="$refs.classList.listData()"></delete-btn>
+          </template>
+        </productClassList>
       </div>
     </basicDetails>
   </div>
@@ -86,12 +101,15 @@ import addProduct from '../components/productList/addProduct'
 import addProductDetail from '../components/productDetailList/addProduct'
 import addTool from '../components/toolList/addTool'
 import toolList from '../components/toolList/toolList'
+import addClass from '../components/productClassList/addProduct'
+import productClassList from '../components/productClassList/productClassList'
 export default {
   name: "detail",
   data() {
     return {
       mainData:{},
-      mainAreaData:{}
+      mainAreaData:{},
+      modelList:[]
     }
   },
   components:{
@@ -103,10 +121,14 @@ export default {
     productDetailList,
     addProductDetail,
     addTool,
-    toolList
+    toolList,
+    addClass,
+    productClassList
   },
   methods:{
     async queryMainData(id) {
+      console.log('详情触发');
+      
       const res = await this.$api.requested({
         "id":20221121195102,
         "content": {
@@ -122,67 +144,280 @@ export default {
           : this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:this.mainData.type}})
 
       this.changeDataStructure()
-      this.mainData.type == '项目' && this.$refs.billno.listData()
     },
     changeDataStructure() {
-      this.mainAreaData = [
-        {
-          label:'合同编号',
-          value:this.mainData.billno
-        },
-        {
-          label:'来源',
-          value:this.mainData.source
-        },
-        {
-          label:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '客户' : '经销商' : this.mainData.type == '居间' ? '居间服务商' : '经销商',
-          value:this.mainData.enterprisename
-        },
-        {
-          label:'项目名称',
-          value:this.mainData.projectname
-        },
-        {
-          label:'合同类型',
-          value:this.mainData.type
-        },
-        {
-          label:'生效日期',
-          value:this.mainData.begdate
-        },
-        {
-          label:'截止日期',
-          value:this.mainData.enddate
-        },
-        {
-          label:'签约日期',
-          value:this.mainData.signdate
-        },
-        {
-          label:'	签约人',
-          value:this.mainData.salername
-        },
-        {
-          label:'创建时间',
-          value:this.mainData.createdate
-        },
-        {
-          label:'创建人',
-          value:this.mainData.createby
-        },
-        {
-          label:'状态',
-          value:this.mainData.status
-        },
-        {
-          label:'折扣',
-          value:this.mainData.discountrate
-        },
-        {
-          label:this.mainData.type == '项目' ? '签约金额' : '单套价格',
-          value:this.mainData.signamount
-        },
-      ]
+      this.mainData.type == '项目' 
+        ? this.mainData.typemx == '直销' 
+          ? this.mainAreaData = [
+            /* 直销信息 */
+          {
+            label:'合同编号',
+            value:this.mainData.billno
+          },
+          {
+            label:'合同打印模板',
+            value:this.mainData.modelname
+          },
+          {
+            label:'客户',
+            value:this.mainData.enterprisename
+          },
+          {
+            label:'项目名称',
+            value:this.mainData.projectname
+          },
+          {
+            label:'合同类型',
+            value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目' : '经销项目' : ''
+          },
+          {
+            label:'业务员',
+            value:this.mainData.salername
+          },
+          {
+            label:'合同有效期',
+            value:`${this.mainData.begdate}-${this.mainData.enddate}`
+          },
+          {
+            label:'签约日期',
+            value:this.mainData.signdate
+          },
+          {
+            label:'签约金额(元)',
+            value:this.mainData.signamount
+          },
+          {
+            label:'创建时间',
+            value:this.mainData.createdate
+          },
+          {
+            label:'创建人',
+            value:this.mainData.createby
+          },
+          {
+            label:'状态',
+            value:this.mainData.status
+          },
+          {
+            label:'合同描述',
+            value:this.mainData.remarks
+          },
+        ] : this.mainAreaData = [
+          /* 经销信息 */
+          {
+            label:'合同编号',
+            value:this.mainData.billno
+          },
+          {
+            label:'合同打印模板',
+            value:this.mainData.modelname
+          },
+          {
+            label:'经销商',
+            value:this.mainData.enterprisename
+          },
+          {
+            label:'项目名称',
+            value:this.mainData.projectname
+          },
+          {
+            label:'合同类型',
+            value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目' : '经销项目' : ''
+          },
+          {
+            label:'业务员',
+            value:this.mainData.salername
+          },
+          {
+            label:'合同有效期',
+            value:`${this.mainData.begdate}-${this.mainData.enddate}`
+          },
+          {
+            label:'签约日期',
+            value:this.mainData.signdate
+          },
+          {
+            label:'签约金额(元)',
+            value:this.mainData.signamount
+          },
+          {
+            label:'创建时间',
+            value:this.mainData.createdate
+          },
+          {
+            label:'创建人',
+            value:this.mainData.createby
+          },
+          {
+            label:'状态',
+            value:this.mainData.status
+          },
+          {
+            label:'合同描述',
+            value:this.mainData.remarks
+          },
+        ] : this.mainData.type == '框架'
+            ? this.mainAreaData = [
+            /* 合作协议 */
+          {
+            label:'合同编号',
+            value:this.mainData.billno
+          },
+          {
+            label:'合同打印模板',
+            value:this.mainData.modelname
+          },
+          {
+            label:'经销商',
+            value:this.mainData.enterprisename
+          },
+          {
+            label:'业务员',
+            value:this.mainData.salername
+          },
+          {
+            label:'合同类型',
+            value:this.mainData.type
+          },
+          {
+            label:'整体折扣(%)',
+            value:this.mainData.discountrate
+          },
+          {
+            label:'合同有效期',
+            value:`${this.mainData.begdate}-${this.mainData.enddate}`
+          },
+          {
+            label:'签约日期',
+            value:this.mainData.signdate
+          },
+          {
+            label:'签约金额(元)',
+            value:this.mainData.signamount
+          },
+          {
+            label:'创建时间',
+            value:this.mainData.createdate
+          },
+          {
+            label:'创建人',
+            value:this.mainData.createby
+          },
+          {
+            label:'状态',
+            value:this.mainData.status
+          },
+          {
+            label:'合同描述',
+            value:this.mainData.remarks
+          },
+        ] : this.mainData.type == '工具借用'
+          ? this.mainAreaData = [
+          /* 工具借用 */
+          {
+            label:'合同编号',
+            value:this.mainData.billno
+          },
+          {
+            label:'合同打印模板',
+            value:this.mainData.modelname
+          },
+          {
+            label:'客户',
+            value:this.mainData.enterprisename
+          },
+          {
+            label:'合同类型',
+            value:this.mainData.type
+          },
+          {
+            label:'业务员',
+            value:this.mainData.salername
+          },
+          {
+            label:'合同有效期',
+            value:`${this.mainData.begdate}-${this.mainData.enddate}`
+          },
+          {
+            label:'签约日期',
+            value:this.mainData.signdate
+          },
+          {
+            label:'单套价格(元)',
+            value:this.mainData.signamount
+          },
+          {
+            label:'创建时间',
+            value:this.mainData.createdate
+          },
+          {
+            label:'创建人',
+            value:this.mainData.createby
+          },
+          {
+            label:'状态',
+            value:this.mainData.status
+          },
+          {
+            label:'合同描述',
+            value:this.mainData.remarks
+          },
+        ] : this.mainAreaData = [
+          /* 居间协议 */
+          {
+            label:'合同编号',
+            value:this.mainData.billno
+          },
+          {
+            label:'合同打印模板',
+            value:this.mainData.modelname
+          },
+          {
+            label:'居间服务商',
+            value:this.mainData.enterprisename
+          },
+          {
+            label:'项目名称',
+            value:this.mainData.projectname
+          },
+          {
+            label:'合同类型',
+            value:this.mainData.type
+          },
+          {
+            label:'业务员',
+            value:this.mainData.salername
+          },
+          {
+            label:'合同有效期',
+            value:`${this.mainData.begdate}-${this.mainData.enddate}`
+          },
+          {
+            label:'签约日期',
+            value:this.mainData.signdate
+          },
+          {
+            label:'佣金比例(%)',
+            value:this.mainData.kickback
+          },
+          {
+            label:'创建时间',
+            value:this.mainData.createdate
+          },
+          {
+            label:'创建人',
+            value:this.mainData.createby
+          },
+          {
+            label:'状态',
+            value:this.mainData.status
+          },
+          {
+            label:'合同描述',
+            value:this.mainData.remarks
+          },
+        ]
+
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex,tabIndex) {
@@ -195,10 +430,25 @@ export default {
       this.visible = false
       this.queryMainData(this.$route.query.id)
       this.$emit('onSuccess')
+    },
+    async getModelList () {
+      let res = await this.$api.requested({
+        "id": 20221121155801,
+        "content": { 
+          "pageNumber": 1,
+            "pageSize": 999999,
+            "where":{
+            "condition":""
+            }
+        }
+      })
+      this.modelList = res.data
+      console.log(this.modelList);
     }
   },
   mounted () {
     this.queryMainData(this.$route.query.id)
+    this.getModelList()
   },
   created() {
   }

+ 2 - 2
src/HManagement/addressList/mycontact/index.vue

@@ -14,10 +14,10 @@
       <contacts style="flex:1 0 auto" :data="activeGroupData" @clickContacts="clickContacts" @filtetContacts="filtetContacts"></contacts>
       <detail :activeContactsData="activeContactsData">
         <template v-slot:edit="data">
-          <edit :tagList="tagList" v-if="tool.checkAuth($route.name,'update')" :data="data" :group="group" @onEditSuccess="onEditSuccess"></edit>
+          <edit :tagList="tagList" v-if="tool.checkAuth($route.name,'update') && data.data.groupname != '客户联系人' && data.data.groupname != '项目联系人'" :data="data" :group="group" @onEditSuccess="onEditSuccess"></edit>
         </template>
         <template v-slot:del="data">
-          <ondel v-if="tool.checkAuth($route.name,'delete')" :data="data" @onDelSuccess="onDelSuccess"></ondel>
+          <ondel v-if="tool.checkAuth($route.name,'delete') && data.data.groupname != '客户联系人' && data.data.groupname != '项目联系人'" :data="data" @onDelSuccess="onDelSuccess"></ondel>
         </template>
       </detail>
     </div>

+ 2 - 0
src/HManagement/addressList/mycontact/modules/edit.vue

@@ -134,6 +134,8 @@ export default {
       this.form = Object.assign({},this.form,this.data.data)
     },
     addGroup () {
+      return console.log(this.data.data);
+      
       this.$refs['form'].validate(async (valid) => {
         if (!valid)  return false;
         this.tags = this.form.tag

+ 2 - 2
src/components/dynamic-table/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-table ref="table" :row-class-name="tableClassName" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" :height="height" @row-click="rowClick" style="width:100%;min-height:300px"  border>
-      <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width === 0 ? 150 : col.width" :fixed="fixedName ? fixedName.indexOf(col.columnname)!= -1?'right':false : ''">
+      <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="width && col.width === 0 ? 150 : col.width" :fixed="fixedName ? fixedName.indexOf(col.columnname)!= -1?'right':false : ''">
         <template slot-scope="scope">
           <!-- 自定义表格显示内容 -->
           <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
@@ -24,7 +24,7 @@ export default {
     custom:是否启用自定义结构;
     opwidth:操作列宽度
   */
-  props:['layout','data','custom','height','fixedName'],
+  props:['layout','data','custom','height','fixedName','width'],
   data () {
     return {
       list:[],