codeMan 2 rokov pred
rodič
commit
dfc1e410e0
28 zmenil súbory, kde vykonal 3300 pridanie a 424 odobranie
  1. 39 45
      src/Form/contractManage/add.vue
  2. 378 134
      src/Form/contractManage/edit.vue
  3. 515 76
      src/HDrpManagement/contractManage/components/addContract.vue
  4. 0 104
      src/HDrpManagement/contractManage/components/addContractProject.vue
  5. 49 0
      src/HDrpManagement/contractManage/components/delete.vue
  6. 65 0
      src/HDrpManagement/contractManage/components/editBtn.vue
  7. 560 0
      src/HDrpManagement/contractManage/components/editContract.vue
  8. 69 0
      src/HDrpManagement/contractManage/components/editProduct.vue
  9. 146 0
      src/HDrpManagement/contractManage/components/productDetailList/addProduct.vue
  10. 154 0
      src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue
  11. 145 0
      src/HDrpManagement/contractManage/components/productList/addProduct.vue
  12. 1 1
      src/HDrpManagement/contractManage/components/productList/productBillno.vue
  13. 202 0
      src/HDrpManagement/contractManage/components/selectAgent.vue
  14. 200 0
      src/HDrpManagement/contractManage/components/selectSaler.vue
  15. 113 0
      src/HDrpManagement/contractManage/components/seleteProject.vue
  16. 55 0
      src/HDrpManagement/contractManage/components/submitCheck.vue
  17. 146 0
      src/HDrpManagement/contractManage/components/toolList/addTool.vue
  18. 154 0
      src/HDrpManagement/contractManage/components/toolList/toolList.vue
  19. 71 19
      src/HDrpManagement/contractManage/index.vue
  20. 196 8
      src/HDrpManagement/contractManage/modules/detail.vue
  21. 0 27
      src/HDrpManagement/projectChange/modules/modules/productSet/indexCopy1.vue
  22. 1 1
      src/HManagement/notice/pate/index.vue
  23. 3 3
      src/components/delete_btn/index.vue
  24. 2 2
      src/components/dynamic-table/index.vue
  25. 2 2
      src/components/normal-basic-layout/index.vue
  26. 32 0
      src/router/HDrpManagement.js
  27. 1 1
      src/router/HManagement.js
  28. 1 1
      src/template/menber/index.vue

+ 39 - 45
src/Form/contractManage/add.vue

@@ -5,70 +5,67 @@
       trigger="hover">
       <div slot="title">合同类型</div>
       <div style="display:flex;flex-direction:column">
-        <el-button type="text" size="mini" @click="addBtn(1)">经销商合作协议</el-button>
-        <el-button type="text" size="mini" @click="addBtn(2)">经销项目协议</el-button>
-        <el-button type="text" size="mini">直销项目协议</el-button>
-        <el-button type="text" size="mini">工具使用协议</el-button>
-        <el-button type="text" size="mini">居间协议</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>
+        <el-button type="text" size="mini" @click="addBtn('居间')">居间协议</el-button>
 
       </div>
       <el-button slot="reference" size="mini" type="primary">新 建</el-button>
     </el-popover>
-      <el-drawer
-        title="新建合同"
-        :visible.sync="drawer"
-        size="80%"
-        direction="rtl"
-        append-to-body>
-        <component :is="getComponent"></component>
-        <div class="fixed__btn__panel">
-          <el-button size="small" @click="drawer=false" class="normal-btn-width">取 消</el-button>
-          <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
-        </div>
+    <el-drawer
+      title="我是标题"
+      :visible.sync="drawer"
+      :with-header="false"
+      direction="rtl"
+      size="30%"
+      append-to-body
+      @close="closeDrawer">
+      <div>
+        <router-view/>
+      </div>
     </el-drawer>
   </div>
 </template>
 
 <script>
+import {mapGetters} from 'vuex'
+
 export default {
   components:{
-    addContractAgent: () => '@/HDrpManagement/contractManage/components/addContract'
   },
   computed: {
-    getComponent () {
-      if (this.type == 1) {
-        return () => import('@/HDrpManagement/contractManage/components/addContract')
-      } else {
-        return () => import('@/HDrpManagement/contractManage/components/addContractProject')
-      }
-    }
   },
   data () {
     return {
-      form:{
-
-      },
-      arealist:[],
-      rules:{
-        sys_enterpriseid: [
-          { required: true, message: '请选择企业名称', trigger: 'blur' },
-        ],
-      },
-      type:'',
       drawer:false
     }
   },
+  computed: {
+    ...mapGetters({
+      DrawerShow:'DrawerShow'
+    })
+  },
+  watch: {
+    $route (val) {
+      // if (val.path == '/submit_mag') {
+      //   this.$refs.list.listData()
+      // }
+    },
+    DrawerShow (val) {
+      val ? this.drawer = true : this.drawer = false
+    }
+  },
   methods:{
-    addBtn (num) {
-      this.type = num
-      this.drawer = true
-      // return this.tool.dispatchFun('normalTable','upData',this)
-      
-      // this.$store.dispatch('changeDetailDrawer',true)
-      // this.$router.push('/addContract')
+    closeDrawer () {
+      this.$store.dispatch('DrawerShowChange',false)
+    },
+    addBtn (type) {
+      this.$store.dispatch('DrawerShowChange',true)
+      this.$router.push({path:'/addContract',query:{type:type}})
     },
     onSubmit () {
-
     }
   },
   created() {
@@ -79,7 +76,4 @@ export default {
 
 </script>
 <style scoped>
-/deep/.el-select {
-  width: 100%!important;
-}
 </style>

+ 378 - 134
src/Form/contractManage/edit.vue

@@ -1,153 +1,397 @@
 <template>
   <div>
-    <el-button size="mini" :type="btnType?btnType:'text'" @click="onShow">编 辑</el-button>
-    <el-dialog title="编 辑" append-to-body :visible.sync="dialogFormVisible">
-      <el-row :gutter="20">
-        <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
-          <el-col :span="24">
-            <el-form-item label="企业名称" prop="sys_enterpriseid">
-              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" @change="enterpriseChange">
-                <el-option
-                  v-for="item in enterpriseData"
-                  :key="item.sys_enterpriseid"
-                  :label="item.enterprisename"
-                  :value="item.sys_enterpriseid">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="账户类型" prop="sa_accountclassid">
-              <el-select v-model="form.sa_accountclassid" placeholder="请选择账户类型">
-                <el-option
-                  v-for="item in accountClassData"
-                  :key="item.sa_accountclassid"
-                  :label="item.accountname"
-                  :value="item.sa_accountclassid">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="信用额度" prop="creditquota">
-              <el-input v-model="form.creditquota" placeholder="输入信用额度"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="14">
-            <el-form-item label="备注" prop="address">
-              <el-input v-model="form.address" type="textarea" :rows="3" placeholder="输入备注"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-      <div class="dialog-footer">
-        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+    <el-button size="mini" @click="editBtn">编 辑</el-button>
+    <el-drawer
+      title="我是标题"
+      :visible.sync="drawer"
+      :with-header="false"
+      direction="rtl"
+      size="30%"
+      append-to-body
+      @close="closeDrawer">
+      <div>
+    <!-- <p class="normal-title normal-panel" style="line-height:32px;padding-left:16px;border-bottom:1px solid #eeeeee">新建合同</p> -->
+      <div>
+        <p class="normal-title normal-panel" style="border-bottom:1px solid #cccccc;padding:16px">编辑合同</p>
+        <div class="container normal-panel" style="padding-bottom:0">
+          <!--合作协议-->
+          <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>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="经销商" prop="enterprisename">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="agentVisible"
+                    width="400">
+                    <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="业务员" prop="saler_hrid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="salerVisible"
+                    width="300">
+                    <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false" v-model="form.salername"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <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-input style="display:none" v-model="form.begdate"></el-input>
+                <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-date-picker
+                    v-model="form.signdate"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </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>
+              </el-col>
+            </el-form>
+          </el-row>
+          <!--经销项目-->
+          <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>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="经销商" prop="enterprisename">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="agentVisible"
+                    width="400">
+                    <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="项目名称" prop="sa_projectid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="projectVisible"
+                    width="600">
+                    <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false" v-model="form.projectname"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="业务员" prop="saler_hrid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="salerVisible"
+                    width="400">
+                    <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;projectVisible=false" v-model="form.salername"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <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-date-picker
+                    v-model="form.signdate"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    placeholder="选择日期">
+                  </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="hrid">
+                  <el-input type="text" size="small" v-model="form.remarks"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-form>
+          </el-row>
+          <!--直销项目-->
+          <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>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="客户" prop="enterprisename">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="accountVisible"
+                    width="400">
+                    <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;agentVisible=false;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="项目名称" prop="sa_projectid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="projectVisible"
+                    width="600">
+                    <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="业务员" prop="saler_hrid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="salerVisible"
+                    width="300">
+                    <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;accountVisible=false;projectVisible=false" v-model="form.salername"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="签约日期" prop="signdate">
+                  <el-date-picker
+                    v-model="form.signdate"
+                    type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <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" 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>
+              </el-col>
+            </el-form>
+          </el-row>
+          <!--工具使用协议-->
+          <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>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="客户" prop="enterprisename">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="accountVisible"
+                    width="400">
+                    <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;salerVisible = false" v-model="form.enterprisename"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="业务员" prop="saler_hrid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="salerVisible"
+                    width="300">
+                    <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;accountVisible=false" v-model="form.salername"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="签约日期" prop="signdate">
+                  <el-date-picker
+                    v-model="form.signdate"
+                    type="date"
+                    placeholder="选择日期">
+                  </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">
+                  <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>
+              </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>
+              </el-col>
+            </el-form>
+          </el-row>
+          <!--居间协议-->
+          <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>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="居间服务商" prop="sys_enterpriseid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="agentVisible"
+                    width="400">
+                    <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="agentVisible = false"></selectAgent>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false;accountVisible=false" v-model="form.enterprisename"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="项目名称" prop="sa_projectid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="projectVisible"
+                    width="600">
+                    <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="业务员" prop="saler_hrid">
+                  <el-popover
+                    placement="bottom"
+                    trigger="manual"
+                    v-model="salerVisible"
+                    width="300">
+                    <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                    <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;projectVisible=false;agentVisible=false;accountVisible=false" v-model="form.salername"></el-input>
+                  </el-popover>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="签约日期" prop="signdate">
+                  <el-date-picker
+                    v-model="form.signdate"
+                    type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <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">
+                  <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>
+              </el-col>
+            </el-form>
+          </el-row>
+        </div>
       </div>
-    </el-dialog>
+      <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">确 定</el-button>
+      </div>
+    </div>
+    </el-drawer>
   </div>
 </template>
 
 <script>
 import {mapGetters} from 'vuex'
+
 export default {
-  props:['data','btnType'],
+  props:['data'],
   data () {
     return {
-      dialogFormVisible:false,
-      enterpriseData:[],
-      accountClassData:[],
-      form:{
-        sa_creditbillid:0,
-        sys_enterpriseid:'',
-        sa_accountclassid:'',
-        creditquota:'',
-        remarks:''
-      },
-      rules:{
-        sys_enterpriseid: [
-          { required: true, message: '请选择企业名称', trigger: 'blur' },
-        ],
-        sa_accountclassid: [
-          { required: true, message: '请选择账户类型', trigger: 'blur' },
-        ],
-        creditquota: [
-          { required: true, message: '请填写信用额度', trigger: 'change' },
-        ],
-      }
+      drawer:false
     }
   },
   methods:{
-    /* 获取企业档案 */
-    async getEnterpriseData() {
-      let res = await this.$api.requested({
-        "id": "20221008164103",
-        "version":1,
-        "content": {
-          "where":{
-              "condition":""
-          }
-        }
-      })
-      this.enterpriseData = res.data
-      console.log(this.enterpriseData);
-      
-    },
-    /* 企业选择变化 */
-    async enterpriseChange() {
-      console.log(this.form.sys_enterpriseid);
-      let res = await this.$api.requested({
-        "id": "20221008164203",
-        "version":1,
-        "content": {
-          "sys_enterpriseid":this.form.sys_enterpriseid
-        }
-      })
-      this.form.sa_accountclassid = ''
-      this.accountClassData = res.data
-      console.log(this.accountClassData);
-      
-    },
-    cascaderChange (val) {
-      if (val.length === 1) 
-        return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
-
-      this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
-    },
-    onSubmit () {
-      this.$refs['form'].validate(async (valid) => {
-        if (!valid) return false
-        const res = await this.$api.requested({
-        "id": "20221008155003",
-        "version":1,
-        "content": this.form
-      })
-        this.tool.showMessage(res,()=>{
-          this.$emit('onSuccess')
-          this.$refs['form'].resetFields();
-          this.dialogFormVisible = false
-        })
-     })
+    closeDrawer () {
     },
-    async onShow () {
-      this.form = Object.assign({},this.form,this.data)
-      console.log(this.form);
-      
-      if( this.data ) {
-        let res = await this.$api.requested({
-          "id": "20221008164203",
-          "version":1,
-          "content": {
-            "sys_enterpriseid":this.form.sys_enterpriseid
-          }
-        })
-        this.accountClassData = res.data
-      }
-      this.dialogFormVisible = true
+    editBtn () {
+      this.drawer = true
     }
   },
   created() {
-    this.getEnterpriseData()
   },
   mounted () {
   }
@@ -155,7 +399,7 @@ export default {
 
 </script>
 <style scoped>
-/deep/.el-select {
-  width: 100% !important;
+/deep/.el-drawer {
+  background: #F1F2F3 !important;
 }
 </style>

+ 515 - 76
src/HDrpManagement/contractManage/components/addContract.vue

@@ -1,95 +1,472 @@
 <template>
   <div>
     <!-- <p class="normal-title normal-panel" style="line-height:32px;padding-left:16px;border-bottom:1px solid #eeeeee">新建合同</p> -->
-    <div class="header_info">
-      <el-row>
-        <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="75px" size="small">
-          <el-col :span="6">
-            <el-form-item label="合同编号" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="合同模板" prop="hrid">
-              <el-select>
-                <el-option label="一一一"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="经销商" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="项目名称" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="业务员" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="生效日期" prop="hrid">
-              <el-date-picker
-                v-model="value1"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="截止日期" prop="hrid">
-              <el-date-picker
-                v-model="value1"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="签约日期" prop="hrid">
-              <el-date-picker
-                v-model="value1"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="合同描述" prop="hrid">
-              <el-input type="textarea" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
+    <div>
+      <p class="normal-title normal-panel" style="border-bottom:1px solid #cccccc;padding:16px">新建合同</p>
+      <div class="container normal-panel" style="padding-bottom:0">
+        <!--合作协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="经销商" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false" v-model="form.saler_name"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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-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-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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>
+        </el-row>
+        <!--经销项目-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="经销商" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="400">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;projectVisible=false" v-model="form.saler_name"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </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>
+            </el-col>
+            <el-col :span="24">
+              <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>
+        </el-row>
+        <!--直销项目-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="accountVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;agentVisible=false;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;accountVisible=false;projectVisible=false" v-model="form.saler_name"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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>
+            </el-col>
+            <el-col :span="16">
+              <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>
+        </el-row>
+        <!--工具使用协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="accountVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;salerVisible = false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;accountVisible=false" v-model="form.saler_name"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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>
+            </el-col>
+            <el-col :span="16">
+              <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>
+        </el-row>
+        <!--居间协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="居间服务商" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="centerChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false;accountVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;projectVisible=false;agentVisible=false;accountVisible=false" v-model="form.saler_name"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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">
+                <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-input type="textarea" size="small" v-model="form.remarks"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+    </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>
     </div>
-    <Tabs :tabs="['产品清单','合同条款','业务关联']">
-      <div slot="slot0">1111111111111</div>
-    </Tabs>
   </div>
 </template>
 
 <script>
-import Tabs from './tab'
+import selectPople from './selectSaler'
+import selectAgent from './selectAgent'
+import seleteProject from './seleteProject'
+import TimeSelect from '@/HDrpManagement/projectChange/components/TimeSelect'
+
 export default {
   name: '',
-  components:{Tabs},
+  components:{selectPople,TimeSelect,seleteProject,selectAgent,},
   data () {
+    var checkNumber = (rule, value, callback) => {
+      if (typeof +value != 'number') {
+        return callback(new Error('请填写数字'));
+      }
+      callback()
+    }
+    var NumberSize = (rule, value, callback) => {
+      if (+value > 1 || +value < 0) {
+        return callback(new Error('折扣范围(0.1-1)'));
+      }
+      callback()
+    }
     return {
-      form: {},
+      agentVisible:false,
+      salerVisible:false,
+      projectVisible:false,
+      accountVisible:false,
+      form: {
+        "sa_contractid": 0,
+        "sys_enterpriseid": "",
+        "salername":'',
+        "projectname":'',
+        "begdate": "",
+        "enddate": "",
+        "sa_projectid": "", //可选
+        "type": "", //可选
+        "discountrate": '', //可选
+        "saler_hrid": '', //可选
+        "signdate": "", //可选
+        "signby": "", //可选
+        "kickback": "", //可选
+        "remarks": "", //可选
+        "title": "",
+        "signamount":'',
+        "saler_name":'',
+        "enterprisename":'',
+        "sys_printmodelid": '',//可选
+        "typemx":""//可选
+      },
       rules: {
         sys_enterpriseid: [
-          { required: true, message: '请选择企业名称', trigger: 'blur' },
+          { required: true, message: '请选择经销商', trigger: 'blur' },
+        ],
+        begdate: [
+          { required: true, message: '请选择生效日期', trigger: 'blur' },
         ],
-        sa_accountclassid: [
-          { required: true, message: '请选择账户类型', trigger: 'blur' },
+        sa_projectid: [
+          { required: true, message: '请选择项目', trigger: 'change' },
         ],
-        creditquota: [
-          { required: true, message: '请填写信用额度', trigger: 'change' },
+        saler_hrid: [
+          { required: true, message: '请选择业务员', trigger: 'change' },
         ],
+        enterprisename: [
+          { required: true, message: '请选择客户', trigger: 'change' },
+        ],
+        signdate: [
+          { required: true, message: '请填写签约金额', trigger: 'change' },
+        ],
+        kickback: [
+          { required: true, message: '请填写佣金比例', trigger: 'change' },
+        ],
+        salername: [
+          { required: true, message: '请选择经销商', trigger: 'change' },
+        ],
+        discountrate: [
+          { validator: checkNumber, trigger: 'blur'},
+          { validator: NumberSize, trigger: 'blur'}
+        ],
+      },
+      salerListParams: {
+        "id": 20221122153902,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      agentListPrams: {
+        "id": 20220920083901,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "type":1,
+          }
+        }
+      },
+      accountListPrams: {
+        "id": 20220920083901,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "type":2,
+          }
+        }
       }
     };
   },
@@ -97,9 +474,68 @@ export default {
   },
   watch: {
   },
+  created () {
+  },
   methods: {
-    onSubmit () {
+    async onSubmit () {
+      this.$refs.form.validate(async val => {
+        if (val) {
+          if (this.$route.query.type == '直销项目') {
+            this.form.type = '项目'
+            this.form.typemx = '直销'
+          } else if (this.$route.query.type == '经销项目') {
+            this.form.type = '项目'
+            this.form.typemx = '经销'
+          } else {
+            this.form.type = this.$route.query.type
+          }
+          let res = await this.$api.requested({
+            "id":20221121185302,
+            "content": this.form
+          })
+          this.tool.showMessage(res,() => {
+            console.log(res.data);
+            this.$store.dispatch('DrawerShowChange',false)
+            this.$store.dispatch('changeDetailDrawer',true)
+            this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
+          })
+        }
+      })
+    },
+    onCancel () {
+      this.$store.dispatch('changeDetailDrawer',false)
+    },
+    agentChange (data) {
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.form.enterprisename = data[0].enterprisename   
+      this.agentVisible = false 
+    },
+    salerChange (data) {
+      this.form.saler_hrid = data[0].hrid
+      this.form.saler_name = data[0].name   
+      this.salerVisible = false 
+    },
+    projectChange (data) {
+      this.form.projectname = data.projectname
+      this.form.sa_projectid = data.sa_projectid
+      this.projectVisible = false
+    },
+    accountChange (data) {
+      this.form.enterprisename = data[0].enterprisename
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.accountVisible = false
+    },
+    centerChange (data) {
+      this.form.enterprisename = data[0].enterprisename
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.agentVisible = false
+    },
+    clearTime () {
 
+    },
+    timeChange (time) {
+      this.form.begdate = time[0]
+      this.form.enddate = time[1]
     }
   },
 };
@@ -114,4 +550,7 @@ export default {
   padding: 16px 16px 0 16px;
   margin-bottom: 16px;
 }
+/deep/.el-select,.el-input,.el-date-editor {
+  width: 100% !important;
+}
 </style>

+ 0 - 104
src/HDrpManagement/contractManage/components/addContractProject.vue

@@ -1,104 +0,0 @@
-<template>
-  <div style="height:100vh">
-    <!-- <p class="normal-title normal-panel" style="line-height:32px;padding-left:16px;border-bottom:1px solid #eeeeee">新建合同</p> -->
-    <div class="header_info">
-      <el-row>
-        <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="75px" size="small">
-          <el-col :span="6">
-            <el-form-item label="合同编号" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="合同模板" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="经销商" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="项目名称" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="业务员" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="生效日期" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="截止日期" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="签约日期" prop="hrid">
-              <el-input type="text" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="合同描述" prop="hrid">
-              <el-input type="textarea" size="small" v-model="form"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-    </div>
-    <Tabs :tabs="['产品清单','合同条款','业务关联']">
-      <div slot="slot0">1111111111111</div>
-    </Tabs>
-    
-  </div>
-</template>
-
-<script>
-import Tabs from './tab'
-export default {
-  name: '',
-  components:{Tabs},
-  data () {
-    return {
-      form: {},
-      rules: {
-        sys_enterpriseid: [
-          { required: true, message: '请选择企业名称', trigger: 'blur' },
-        ],
-        sa_accountclassid: [
-          { required: true, message: '请选择账户类型', trigger: 'blur' },
-        ],
-        creditquota: [
-          { required: true, message: '请填写信用额度', trigger: 'change' },
-        ],
-      }
-    };
-  },
-  computed: {
-  },
-  watch: {
-  },
-  methods: {
-    onSubmit () {
-
-    }
-  },
-};
-</script>
-
-<style scoped>
-* {
-  box-sizing: border-box;
-}
-.header_info {
-  background: #ffffff;
-  padding: 16px 16px 0 16px;
-  margin-bottom: 16px;
-}
-</style>

+ 49 - 0
src/HDrpManagement/contractManage/components/delete.vue

@@ -0,0 +1,49 @@
+<template>
+  <div>
+    <el-button size="mini" @click="dialog=true">删除</el-button>
+    <el-dialog append-to-body width="30%" title="作废" :visible.sync="dialog">
+      <el-input type="textarea" size="small" placeholder="作废原因"></el-input>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialog = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: '',
+  data() {
+    return {
+      dialog:false,
+      deletereason:''
+    };
+  },
+  props:['idName','idKey','id'],
+  computed:{
+  },
+  watch:{
+  },
+  methods: {
+    async onSubmit () {
+      let res = await this.$api.requested({
+        "id": this.idName,
+        "content": {
+            [this.idKey]: [this.id],
+            "deletereason":this.deletereason
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.dialog = false
+        this.$store.dispatch('changeDetailDrawer',false)
+        this.$emit('onSuccess')
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+
+</style>

+ 65 - 0
src/HDrpManagement/contractManage/components/editBtn.vue

@@ -0,0 +1,65 @@
+<template>
+  <div>
+    <el-button :disabled="data.status != '新建'" size="mini" @click="editBtn">编 辑</el-button>
+    <el-drawer
+      title="我是标题"
+      :visible.sync="drawer"
+      :with-header="false"
+      direction="rtl"
+      size="80%"
+      append-to-body
+      @close="closeDrawer">
+      <div>
+        <router-view/>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+
+export default {
+  props:['data'],
+  data () {
+    return {
+      drawer:false
+    }
+  },
+  computed: {
+    ...mapGetters({
+      DrawerShow:'DrawerShow'
+    })
+  },
+  watch: {
+    $route (val) {
+      // if (val.path == '/submit_mag') {
+      //   this.$refs.list.listData()
+      // }
+    },
+    DrawerShow (val) {
+      val ? this.drawer = true : this.drawer = false
+    }
+  },
+  methods:{
+    closeDrawer () {
+      this.$store.dispatch('DrawerShowChange',false)
+      this.$router.back()
+    },
+    editBtn () {
+      this.$store.dispatch('DrawerShowChange',true)
+      this.$router.push({path:'/editContract',query:{type:this.data.type == '项目' ? this.data.typemx == '直销' ? '直销项目' : '经销项目' : this.data.type ,id:this.data.sa_contractid}})
+    }
+  },
+  created() {
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style scoped>
+/deep/.el-drawer {
+  background: #F1F2F3 !important;
+}
+</style>

+ 560 - 0
src/HDrpManagement/contractManage/components/editContract.vue

@@ -0,0 +1,560 @@
+<template>
+  <div>
+    <el-button @click="drawer=true" size="mini">编 辑</el-button>
+    <el-drawer size="30%" append-to-body :visible.sync="drawer">
+      <!--合作协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="经销商" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false" v-model="form.salername"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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-input style="display:none" v-model="form.begdate"></el-input>
+              <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-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </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>
+            </el-col>
+          </el-form>
+        </el-row>
+        <!--经销项目-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="经销商" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="400">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;projectVisible=false" v-model="form.salername"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                </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="hrid">
+                <el-input type="text" size="small" v-model="form.remarks"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+        <!--直销项目-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="accountVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;agentVisible=false;salerVisible = false;projectVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;agentVisible=false;accountVisible=false;projectVisible=false" v-model="form.salername"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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" 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>
+            </el-col>
+          </el-form>
+        </el-row>
+        <!--工具使用协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户" prop="enterprisename">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="accountVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="accountVisible=true;salerVisible = false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;accountVisible=false" v-model="form.salername"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </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">
+                <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>
+            </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>
+            </el-col>
+          </el-form>
+        </el-row>
+        <!--居间协议-->
+        <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>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="居间服务商" prop="sys_enterpriseid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="agentVisible"
+                  width="400">
+                  <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="agentVisible = false"></selectAgent>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="agentVisible=true;salerVisible = false;projectVisible=false;accountVisible=false" v-model="form.enterprisename"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目名称" prop="sa_projectid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="projectVisible"
+                  width="600">
+                  <seleteProject @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="projectVisible=true;salerVisible = false;agentVisible=false;accountVisible=false" v-model="form.projectname"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="业务员" prop="saler_hrid">
+                <el-popover
+                  placement="bottom"
+                  trigger="manual"
+                  v-model="salerVisible"
+                  width="300">
+                  <selectPople ref="member" :param="salerListParams" :radio="true" @onSelect="salerChange" @onCancel="salerVisible = false"></selectPople>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="salerVisible=true;projectVisible=false;agentVisible=false;accountVisible=false" v-model="form.salername"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="签约日期" prop="signdate">
+                <el-date-picker
+                  v-model="form.signdate"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <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">
+                <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>
+            </el-col>
+          </el-form>
+        </el-row>
+        <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">确 定</el-button>
+        </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import selectPople from './selectSaler'
+import selectAgent from './selectAgent'
+import seleteProject from './seleteProject'
+import TimeSelect from '@/HDrpManagement/projectChange/components/TimeSelect'
+import { log } from '@antv/g2plot/lib/utils'
+
+export default {
+  name: '',
+  components:{selectPople,TimeSelect,seleteProject,selectAgent},
+  data () {
+    return {
+      drawer:false,
+      agentVisible:false,
+      salerVisible:false,
+      projectVisible:false,
+      accountVisible:false,
+      form: {
+        "sa_contractid": 0,
+        "sys_enterpriseid": "",
+        "enterprisename":'',
+        "projectname":'',
+        "begdate": "",
+        "enddate": "",
+        "sa_projectid": "", //可选
+        "type": "", //可选
+        "discountrate": '', //可选
+        "saler_hrid": '', //可选
+        "signdate": "", //可选
+        "signby": "", //可选
+        "kickback": "", //可选
+        "remarks": "", //可选
+        "title": "",
+        "signamount":'',
+        "salername":'',
+        "enterprisename":'',
+        "sys_printmodelid": '',//可选
+        "typemx":""//可选
+      },
+      rules: {
+        sys_enterpriseid: [
+          { required: true, message: '请选择经销商', trigger: 'blur' },
+        ],
+        begdate: [
+          { required: true, message: '请选择生效日期', trigger: 'blur' },
+        ],
+        sa_projectid: [
+          { required: true, message: '请选择项目', trigger: 'change' },
+        ],
+        signamount: [
+          { required: true, message: '请填写签约金额', trigger: 'change' },
+        ],
+        saler_hrid: [
+          { required: true, message: '请选择业务员', trigger: 'change' },
+        ],
+        enterprisename: [
+          { required: true, message: '请选择客户', trigger: 'change' },
+        ],
+        signdate: [
+          { required: true, message: '请填写签约金额', trigger: 'change' },
+        ],
+        kickback: [
+          { required: true, message: '请填写佣金比例', trigger: 'change' },
+        ],
+        enterprisename: [
+          { required: true, message: '请选择经销商', trigger: 'change' },
+        ],
+      },
+      salerListParams: {
+        "id": 20221122153902,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      agentListPrams: {
+        "id": 20220920083901,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "type":1,
+          }
+        }
+      },
+      accountListPrams: {
+        "id": 20220920083901,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "type":2,
+          }
+        }
+      }
+    };
+  },
+  computed: {
+  },
+  watch: {
+  },
+  created () {
+  },
+  mounted () {
+    this.getDetail()
+  },
+  methods: {
+    async getDetail () {
+      let res = await this.$api.requested({
+        "id": 20221121195102,
+        "content": {
+            "sa_contractid": this.$route.query.id
+        },
+      })
+      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 => {
+        if (val) {
+          if (this.$route.query.type == '直销项目') {
+            this.form.type = '项目'
+            this.form.typemx = '直销'
+          } else if (this.$route.query.type == '经销项目') {
+            this.form.type = '项目'
+            this.form.typemx = '经销'
+          } else {
+            this.form.type = this.$route.query.type
+          }
+          let res = await this.$api.requested({
+            "id":20221121185302,
+            "content": this.form
+          })
+          this.tool.showMessage(res,() => {
+            this.$refs.form.resetFields()
+            this.drawer = false
+            this.$emit('onSuccess')
+          })
+        }
+      })
+    },
+    onCancel () {
+      this.drawer = false
+      this.$refs.form.resetFlieds()
+    },
+    agentChange (data) {
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.form.enterprisename = data[0].enterprisename   
+      this.agentVisible = false 
+    },
+    salerChange (data) {
+      this.form.saler_hrid = data[0].hrid
+      this.form.salername = data[0].name   
+      this.salerVisible = false 
+    },
+    projectChange (data) {
+      this.form.projectname = data.projectname
+      this.form.sa_projectid = data.sa_projectid
+      this.projectVisible = false
+    },
+    accountChange (data) {
+      this.form.enterprisename = data[0].enterprisename
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.accountVisible = false
+    },
+    centerChange (data) {
+      this.form.enterprisename = data[0].enterprisename
+      this.form.sys_enterpriseid = data[0].sys_enterpriseid
+      this.agentVisible = false
+    },
+    clearTime () {
+
+    },
+    timeChange (time) {
+      this.form.begdate = time[0]
+      this.form.enddate = time[1]
+    },
+  },
+};
+</script>
+
+<style scoped>
+* {
+  box-sizing: border-box;
+}
+.header_info {
+  background: #ffffff;
+  padding: 16px 16px 0 16px;
+  margin-bottom: 16px;
+}
+/deep/.el-select,.el-input,.el-date-editor {
+  width: 100% !important;
+}
+</style>

+ 69 - 0
src/HDrpManagement/contractManage/components/editProduct.vue

@@ -0,0 +1,69 @@
+<template>
+  <div>
+    <el-button type="text" size="mini" @click="drawer=true">编辑</el-button>
+    <el-dialog append-to-body width="30%" :visible.sync="drawer">
+      <el-form :model="form" :rules="rules" ref="form" label-width="80px" label-position="right" size="mini">
+        <el-col :span="24">
+          <el-form-item label="数量" prop="qty">
+            <el-input v-model="form.qty" placeholder="请输入数量"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="折扣" prop="discountrate">
+            <el-input v-model="form.discountrate" placeholder="请输入折扣"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="单价" prop="price">
+            <el-input v-model="form.price" placeholder="请输入单价"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="drawer = false">取 消</el-button>
+        <el-button type="warning" size="small" @click="onSumit">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: '',
+  data() {
+    return {
+      drawer:false,
+      form:{
+        qty:'',
+        discountrate:'',
+        price:'',
+
+      },
+      rules: {
+        qty: [
+          { required: true, message: '请输入数量', trigger: 'blur' },
+        ],
+        discountrate: [
+          { required: true, message: '请输入折扣', trigger: 'blur,change' },
+        ],
+        price: [
+          { required: true, message: '请输入单价', trigger: 'blur,change' },
+        ]
+      }
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  methods: {
+    onSumit () {
+
+    }
+  },
+};
+</script>
+
+<style scoped>
+
+</style>

+ 146 - 0
src/HDrpManagement/contractManage/components/productDetailList/addProduct.vue

@@ -0,0 +1,146 @@
+<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">
+      <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'">
+            <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 '@/HDrpManagement/ProductGroupMag/modules/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": 20221124093602,
+        "content": {
+          "sa_contractid": '',
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "istool":0//是否是工具
+          }
+        },
+      }
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['productTable'].tablecols
+  },
+  methods: {
+    addBtn () {
+      this.$route.query.id ? this.drawer = true : this.$message({
+        title:'提示',
+        message: '请先保存合同',
+        type:'warning'
+      })
+      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 () {
+      console.log(this.$refs.table.allArr);
+      let item = this.$refs.table.allArr.map(item => {
+        return {
+          "itemid": item.itemid,
+          "price": '0',
+          "qty": '0'
+        }
+      })
+      let res = await this.$api.requested({
+        "id": 20221123164402,
+        "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>

+ 154 - 0
src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue

@@ -0,0 +1,154 @@
+<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" >
+        <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>
+            <span v-else>{{scope.column.data.qty}}</span>
+          </div>
+          <div v-else-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 == '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 == 'price'">
+            <el-input size="mini" v-if="editIndex == scope.column.data.sa_contract_itemsid" v-model="form.price" @input="priceChange($event,scope.column.data)"></el-input>
+            <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
+          </div>
+          <div v-else-if="scope.column.columnname == 'countPrice'">
+            <p>{{scope.column.data.price * scope.column.data.qty}}</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" 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": 20221122165302,
+          "content": {
+              "sa_contractid": '',
+              "pageNumber": 1,
+              "pageSize": 20,
+              "where": {
+                  "condition": "",
+              }
+          },
+      },
+      form: {
+        qty:'',
+        discountrate:'',
+        price:'',
+      },
+      tablecols:[],
+      total:0,
+      editIndex:''
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    if (this.$route.query.id) this.listData()
+    this.tablecols = this.tool.tabelCol(this.$route.name).productDetailTable.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
+      console.log('触发了');
+    },
+    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 () {
+      let res = await this.$api.requested({
+        "id": 20221122200302,
+        "content": {
+          "sa_contractid":this.$route.query.id,
+          "items": [this.form]
+        },
+      })
+      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>

+ 145 - 0
src/HDrpManagement/contractManage/components/productList/addProduct.vue

@@ -0,0 +1,145 @@
+<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">
+      <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'">
+            <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].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 '@/HDrpManagement/ProductGroupMag/modules/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": 20221123162902,
+        "content": {
+            "sa_contractid": '',
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      }
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['productTable'].tablecols
+  },
+  methods: {
+    addBtn () {
+      this.$route.query.id ? this.drawer = true : this.$message({
+        title:'提示',
+        message: '请先保存合同',
+        type:'warning'
+      })
+      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 () {
+      console.log(this.$refs.table.allArr);
+      let item = this.$refs.table.allArr.map(item => {
+        return {
+          "itemid": item.itemid,
+          "price": '0',
+          "qty": '0'
+        }
+      })
+      let res = await this.$api.requested({
+        "id": 20221123164402,
+        "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>

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

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div>
-      <div style="display:flex">
+      <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>
         <slot name="addProduct"/>
       </div>

+ 202 - 0
src/HDrpManagement/contractManage/components/selectAgent.vue

@@ -0,0 +1,202 @@
+<template>
+<div>
+	<!-- <el-input class="normal-margin" type="text" v-model="search" @keyup.native.enter="listData" suffix-icon="el-icon-search" size="small" placeholder="输入成员名称">
+    <div slot="prepend">
+      <el-tag type="info" size="mini" closable v-for="item in selected" :key="item.index">{{item.name}}</el-tag>
+    </div>
+  </el-input> -->
+  <div class="search_input normal-margin">
+    <div class="tag flex-align-center" type="primary" size="mini" closable v-for="item in selected" :key="item.index">
+      <div class="avatar-mini">
+        <img class="avatar__image" v-if="item.headpic" :src="item.headpic" alt="">
+        <p v-else>{{item.enterprisename}}</p>
+      </div>
+      <p class="inline-16">{{item.enterprisename}}</p>
+      <b><i class="el-icon-close" @click="closeTag(item)"></i></b>
+    </div>
+    <input class="input_panel" type="text" v-model="search" @keyup.enter="listData" placeholder="输入搜索内容">
+  </div>
+	<div class="flex-align-stretch menber__panel">
+		<div class="flex-align-center menber__item flex-between" :class="showSelelctIcon(item)?'active_menber__item':''" style="flex:1 0 auto" v-for="item in tableData" :key="item.index" @click="clickMenber(item)">
+			<div  class="flex-align-center">
+				<div class="avatar inline-16">
+					<img class="avatar__image" v-if="item.headpic" :src="item.headpic" alt="">
+					<p v-else>{{item.enterprisename}}</p>
+				</div>
+				<div>
+					<p>{{ item.enterprisename }}</p>
+					<small style="color:#999999ad;margin-top:10px">地址:{{ item.address?item.address:"暂无" }}&emsp;联系电话:{{ item.phonenumber?item.phonenumber:"暂无" }}</small>
+				</div>
+			</div>
+			<i class="el-icon-check iconCheck" v-if="showSelelctIcon(item)"></i>
+		</div>
+	</div>
+  <el-empty v-if="tableData.length === 0" description="暂无数据" :image-size="40"></el-empty>
+  <el-button size="mini" type="text" style="margin-top:16px;float:right" @click="onCancel">取 消</el-button>
+	<el-button size="mini" type="primary" style="margin-top:16px;float:right;margin-right:10px" @click="onSelect">确 定</el-button>
+ 	<div style="margin-top:16px;text-align:left">
+    <el-pagination
+    background
+    small
+    @size-change="handleSizeChange"
+    @current-change="handleCurrentChange"
+    :current-page="currentPage"
+    :page-size="param.content.pageSize"
+    layout="total, prev, pager, next"
+    :total="total">
+    </el-pagination>
+</div>
+</div>
+</template>
+
+<script>
+export default {
+	props:['param','radio','checked'],
+  data () {
+    return {
+      search:'',
+      tableData: [],
+      total:0,
+      currentPage:0,
+			selected:[]
+    }
+  },
+  components:{
+  },
+  methods:{
+    async listData () {
+			this.param.content.where.condition = this.search
+      const res = await this.$api.requested(this.param)
+      this.tableData = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+      console.log(this.tableData);
+      
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+		clickMenber (item) {
+			if (this.radio) {
+				this.selected = []
+			}
+			let _isSame = this.selected.some(m=>item.sys_enterpriseid === m.sys_enterpriseid)
+			if (!_isSame) {
+				this.selected.push(item)
+			} else {
+				this.selected = this.selected.filter(e=>{
+					return e.sys_enterpriseid !== item.sys_enterpriseid
+				})
+			}
+		},
+		showSelelctIcon (item) {
+			let _isSame = this.selected.some(m=>item.sys_enterpriseid === m.sys_enterpriseid)
+			return _isSame
+		},
+		onSelect () {
+			this.$emit('onSelect',this.selected)
+		},
+    closeTag (item) {
+      this.selected = this.selected.filter(e=>{
+        return e.sys_enterpriseid !== item.sys_enterpriseid
+      })
+    },
+    onCancel () {
+      this.$emit('onCancel')
+    }
+  },
+  mounted () {
+    this.listData()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.search_input{
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  padding: 8px 8px 0 8px;
+  border: 1px solid #f1f2f3;
+  border-radius: 5px;
+}
+.input_panel{
+  flex: 1;
+  min-width: 100px;
+  border:none;
+  outline: none;
+  margin-bottom: 8px;
+  color:#666
+}
+.menber__item{
+	width: calc(100% - 20px);
+	padding:5px 10px;
+	border-radius: 5px;
+	cursor: pointer;
+	color:#666;
+	margin-bottom: 5px;
+	transition: .2s linear;
+}
+.menber__item:hover{
+	background: #b5e4ff6e;
+}
+.active_menber__item{
+	background: #b5e4ff6e;
+}
+.menber__panel {
+	max-height: 300px;
+	overflow-y:scroll ;
+}
+.avatar{
+  position: relative;
+  height:30px;
+  width: 30px;
+  border-radius: 100%;
+  text-align: center;
+  line-height: 30px;
+  color:#fff;
+  font-weight: 500;
+  background: #3874F6;
+  cursor: pointer;
+  overflow: hidden;
+}
+.avatar__image{
+  height: 100%;
+  width: 100%;
+}
+.avatar-mini{
+  position: relative;
+  height:20px;
+  width: 20px;
+  line-height: 20px;
+  text-align: center;
+  margin-right: 5px;
+  color:#fff;
+  font-size: 12px;
+  font-weight: 500;
+  border-radius: 100%;
+  background: #3874F6;
+}
+.iconCheck{
+	font-weight: bold;
+	color:#3874F6
+}
+.tag{
+  font-size: 12px;
+  color:#666;
+  padding: 5px;
+  border-radius: 3px;
+  margin:0 5px 8px 0;
+  background: #b5e4ff6e;
+  cursor: pointer;
+}
+</style>

+ 200 - 0
src/HDrpManagement/contractManage/components/selectSaler.vue

@@ -0,0 +1,200 @@
+<template>
+<div>
+	<!-- <el-input class="normal-margin" type="text" v-model="search" @keyup.native.enter="listData" suffix-icon="el-icon-search" size="small" placeholder="输入成员名称">
+    <div slot="prepend">
+      <el-tag type="info" size="mini" closable v-for="item in selected" :key="item.index">{{item.name}}</el-tag>
+    </div>
+  </el-input> -->
+  <div class="search_input normal-margin">
+    <div class="tag flex-align-center" type="primary" size="mini" closable v-for="item in selected" :key="item.index">
+      <div class="avatar-mini">
+        <img class="avatar__image" v-if="item.headpic" :src="item.headpic" alt="">
+        <p v-else>{{item.name.substr(0, 1)}}</p>
+      </div>
+      <p class="inline-16">{{item.name}}</p>
+      <b><i class="el-icon-close" @click="closeTag(item)"></i></b>
+    </div>
+    <input class="input_panel" type="text" v-model="search" @keyup.enter="listData" placeholder="输入搜索内容">
+  </div>
+	<div class="flex-align-stretch menber__panel">
+		<div class="flex-align-center menber__item flex-between" :class="showSelelctIcon(item)?'active_menber__item':''" style="flex:1 0 auto" v-for="item in tableData" :key="item.index" @click="clickMenber(item)">
+			<div  class="flex-align-center">
+				<div class="avatar inline-16">
+					<img class="avatar__image" v-if="item.headpic" :src="item.headpic" alt="">
+					<p v-else>{{item.name.substr(0, 1)}}</p>
+				</div>
+				<div>
+					<p>{{ item.name }} &nbsp;<small style="color:#999999ad">{{item.username}}</small></p>
+					<small style="color:#999999ad;margin-top:10px">部门:{{ item.depname?item.depname:"未知部门" }}&emsp;职位:{{ item.position?item.position:"未知部门" }}</small>
+				</div>
+			</div>
+			<i class="el-icon-check iconCheck" v-if="showSelelctIcon(item)"></i>
+		</div>
+	</div>
+  <el-empty v-if="tableData.length === 0" description="暂无数据" :image-size="40"></el-empty>
+  <el-button size="mini" type="text" style="margin-top:16px;float:right" @click="onCancel">取 消</el-button>
+	<el-button size="mini" type="primary" style="margin-top:16px;float:right;margin-right:10px" @click="onSelect">确 定</el-button>
+ 	<div style="margin-top:16px;text-align:left">
+    <el-pagination
+    background
+    small
+    @size-change="handleSizeChange"
+    @current-change="handleCurrentChange"
+    :current-page="currentPage"
+    :page-size="param.content.pageSize"
+    layout="total, prev, pager, next"
+    :total="total">
+    </el-pagination>
+</div>
+</div>
+</template>
+
+<script>
+export default {
+	props:['param','radio','checked'],
+  data () {
+    return {
+      search:'',
+      tableData: [],
+      total:0,
+      currentPage:0,
+			selected:[]
+    }
+  },
+  components:{
+  },
+  methods:{
+    async listData () {
+			this.param.content.where.condition = this.search
+      const res = await this.$api.requested(this.param)
+      this.tableData = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+		clickMenber (item) {
+			if (this.radio) {
+				this.selected = []
+			}
+			let _isSame = this.selected.some(m=>item.userid === m.userid)
+			if (!_isSame) {
+				this.selected.push(item)
+			} else {
+				this.selected = this.selected.filter(e=>{
+					return e.userid !== item.userid
+				})
+			}
+		},
+		showSelelctIcon (item) {
+			let _isSame = this.selected.some(m=>item.userid === m.userid)
+			return _isSame
+		},
+		onSelect () {
+			this.$emit('onSelect',this.selected)
+		},
+    closeTag (item) {
+      this.selected = this.selected.filter(e=>{
+        return e.userid !== item.userid
+      })
+    },
+    onCancel () {
+      this.$emit('onCancel')
+    }
+  },
+  mounted () {
+    this.listData()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.search_input{
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  padding: 8px 8px 0 8px;
+  border: 1px solid #f1f2f3;
+  border-radius: 5px;
+}
+.input_panel{
+  flex: 1;
+  min-width: 100px;
+  border:none;
+  outline: none;
+  margin-bottom: 8px;
+  color:#666
+}
+.menber__item{
+	width: calc(100% - 20px);
+	padding:5px 10px;
+	border-radius: 5px;
+	cursor: pointer;
+	color:#666;
+	margin-bottom: 5px;
+	transition: .2s linear;
+}
+.menber__item:hover{
+	background: #b5e4ff6e;
+}
+.active_menber__item{
+	background: #b5e4ff6e;
+}
+.menber__panel {
+	max-height: 300px;
+	overflow-y:scroll ;
+}
+.avatar{
+  position: relative;
+  height:30px;
+  width: 30px;
+  border-radius: 100%;
+  text-align: center;
+  line-height: 30px;
+  color:#fff;
+  font-weight: 500;
+  background: #3874F6;
+  cursor: pointer;
+  overflow: hidden;
+}
+.avatar__image{
+  height: 100%;
+  width: 100%;
+}
+.avatar-mini{
+  position: relative;
+  height:20px;
+  width: 20px;
+  line-height: 20px;
+  text-align: center;
+  margin-right: 5px;
+  color:#fff;
+  font-size: 12px;
+  font-weight: 500;
+  border-radius: 100%;
+  background: #3874F6;
+}
+.iconCheck{
+	font-weight: bold;
+	color:#3874F6
+}
+.tag{
+  font-size: 12px;
+  color:#666;
+  padding: 5px;
+  border-radius: 3px;
+  margin:0 5px 8px 0;
+  background: #b5e4ff6e;
+  cursor: pointer;
+}
+</style>

+ 113 - 0
src/HDrpManagement/contractManage/components/seleteProject.vue

@@ -0,0 +1,113 @@
+<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="projectnum"
+            label="项目编号"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="projectname"
+            label="项目名称"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="status"
+            label="状态">
+          </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('onCanel')">取消</el-button>
+        </div>
+        
+        
+      </div>
+      <!-- <el-input :validate-event="false" slot="reference" v-model="form.enterprisename" @focus="queryEnterpriseArchives"  placeholder="输入企业名称" clearable></el-input> -->
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      ENlist:[],
+      total:0,
+      currentPage:0,
+      form:{},
+      params:{
+        "id": 20221020143502,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "type":0, //  1:我负责的;2:我参与的;3:我下属负责的;4:我下属参与的
+          "where": {
+              "condition": "",
+              "startdate": "",
+              "enddate": "",
+              "status":"",//跟进中、已成交、已失败
+              "projecttype":"",
+              "stagename":"",
+              "tag":""
+          }
+        },
+      },
+      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>

+ 55 - 0
src/HDrpManagement/contractManage/components/submitCheck.vue

@@ -0,0 +1,55 @@
+<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>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  name: '',
+  data() {
+    return {
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  methods: {
+    async deleteRow () {
+      if (this.data.status == '新建') {
+        let res = await this.$api.requested({
+          "id": 20221121202802,
+          "content": {
+              "sa_contractids": [this.data.sa_contractid]
+          },
+        })
+        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')
+        })
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+
+</style>

+ 146 - 0
src/HDrpManagement/contractManage/components/toolList/addTool.vue

@@ -0,0 +1,146 @@
+<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">
+      <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'">
+            <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 '@/HDrpManagement/ProductGroupMag/modules/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": 20221124093602,
+        "content": {
+          "sa_contractid": '',
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "istool":1//是否是工具
+          }
+        },
+      }
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['productTable'].tablecols
+  },
+  methods: {
+    addBtn () {
+      this.$route.query.id ? this.drawer = true : this.$message({
+        title:'提示',
+        message: '请先保存合同',
+        type:'warning'
+      })
+      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 () {
+      console.log(this.$refs.table.allArr);
+      let item = this.$refs.table.allArr.map(item => {
+        return {
+          "itemid": item.itemid,
+          "price": '0',
+          "qty": '0'
+        }
+      })
+      let res = await this.$api.requested({
+        "id": 20221123164402,
+        "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>

+ 154 - 0
src/HDrpManagement/contractManage/components/toolList/toolList.vue

@@ -0,0 +1,154 @@
+<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" >
+        <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>
+            <span v-else>{{scope.column.data.qty}}</span>
+          </div>
+          <div v-else-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 == '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 == 'price'">
+            <el-input size="mini" v-if="editIndex == scope.column.data.sa_contract_itemsid" v-model="form.price" @input="priceChange($event,scope.column.data)"></el-input>
+            <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
+          </div>
+          <div v-else-if="scope.column.columnname == 'countPrice'">
+            <p>{{scope.column.data.price * scope.column.data.qty}}</p>
+          </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>
+          <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" 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 './addTool'
+import previewImage from '@/components/previewImage/index'
+export default {
+  components: {addProduct,previewImage},
+  name: '',
+  data() {
+    return {
+      list:[],
+      params: {
+          "id": 20221122165302,
+          "content": {
+              "sa_contractid": '',
+              "pageNumber": 1,
+              "pageSize": 20,
+              "where": {
+                  "condition": "",
+              }
+          },
+      },
+      form: {
+        qty:'',
+        discountrate:'',
+        price:'',
+      },
+      tablecols:[],
+      total:0,
+      editIndex:''
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created () {
+    if (this.$route.query.id) this.listData()
+    this.tablecols = this.tool.tabelCol(this.$route.name).toolTable.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
+      console.log('触发了');
+    },
+    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 () {
+      let res = await this.$api.requested({
+        "id": 20221122200302,
+        "content": {
+          "sa_contractid":this.$route.query.id,
+          "items": [this.form]
+        },
+      })
+      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>

+ 71 - 19
src/HDrpManagement/contractManage/index.vue

@@ -2,28 +2,33 @@
 <template>
   <div>
     <basicLayout 
-      ref="basicLayout" 
+      ref="list" 
       formPath="contractManage"
       tableName="contractListTable" 
-      idName="userid" 
-      :apiId="{query:20221031141102,del:20221031141202}"
+      idName="sa_contractid" 
+      :apiId="{query:20221121201502,del:20221121202502}"
       :options="options"
       :detailPath="{
-        path:'/contractDetail'
-      }">
+        path:'/contractDetail',
+      }"
+      @listData="listdata"
+      @listCreate="list">
       <div slot="custom" style="display:flex">
         <div class="label_center">
           <p class="search__label">范围:</p>
           <el-select
             class="inline-16"
             size="small"
-            v-model="form.area"
+            v-model="area"
             placeholder="请选择范围"
             clearable
+            @change="$refs.list.param.content.type=area;$refs.list.listData()"
           >
             <el-option
-              :label="11"
-              :value="111"
+              v-for="item in areaList"
+              :key="item.remarks"
+              :label="item.value"
+              :value="item.remarks"
             ></el-option>
           </el-select>
         </div>
@@ -32,13 +37,16 @@
           <el-select
             class="inline-16"
             size="small"
-            v-model="form.area"
+            v-model="type"
             placeholder="请选择合同类型"
             clearable
+            @change="$refs.list.param.content.where.type=type;$refs.list.listData()"
           >
             <el-option
-              :label="11"
-              :value="111"
+              v-for="item in typeList"
+              :key="item.value"
+              :label="item.remarks"
+              :value="item.value"
             ></el-option>
           </el-select>
         </div>
@@ -47,22 +55,29 @@
           <el-select
             class="inline-16"
             size="small"
-            v-model="form.area"
+            v-model="status"
             placeholder="请选择合同状态"
             clearable
+            @change="$refs.list.param.content.where.status=status;$refs.list.listData()"
           >
-            <el-option
-              :label="11"
-              :value="111"
-            ></el-option>
+            <el-option label="全部" value="" ></el-option>
+            <el-option label="新建" value="新建" ></el-option>
+            <el-option label="审核" value="审核" ></el-option>
+            <el-option label="已提交" value="已提交" ></el-option>
           </el-select>
         </div>
       </div>
 
       <template v-slot:tbList="scope">
-        <div>
+        <div v-if="scope.data.column.columnname == 'status'">
+          <span v-if="scope.data.column.data[[scope.data.column.columnname]]=='审核'" style="color: rgb(82, 196, 26);">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <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>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
         </div>
+        <span v-if="!scope.data.column.data[[scope.data.column.columnname]] && scope.data.column.data[[scope.data.column.columnname]] !== 0">--</span>
       </template>
       <template v-slot:tbOpreation="scope">
       </template>
@@ -75,11 +90,48 @@ export default {
   data () {
     return {
       options:[],
-      form:{}
-      
+      areaList:[],
+      typeList:[],
+      area:'',
+      type:'',
+      condition:'',
+      status:''
     }
   },
+  created () {
+    this.getSystemList()
+    this.getAgentList()
+  },
   methods:{
+    async getSystemList () {
+      const res = await this.$store.dispatch('optiontypeselect','dataarea')
+      this.areaList = res.data
+      const res2 = await this.$store.dispatch('optiontypeselect','contracttype')
+      this.typeList = res2.data
+    },
+    async getAgentList () {
+      let res = await this.$api.requested({
+        "classname": "webmanage.sale.agents.agents",
+        "method": "query_agentList",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "agenttype":"经销商",
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      console.log(res.data);
+      
+    },
+    list (params) {
+      params.content.type = 0
+    },
+    listdata(data) {
+      console.log(data);
+      
+    }
   }
 }
 

+ 196 - 8
src/HDrpManagement/contractManage/modules/detail.vue

@@ -1,22 +1,210 @@
 <template>
-  <div></div>
+  <div>
+    <basicDetails
+        v-if="Object.keys(mainData)"
+        ref="details"
+        :titleText="mainData.billno"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20221121201502"
+        idname="sa_contractid"
+        ownertable="sa_contract"
+        :tabs="mainData.type == '项目' ? ['产品清单','角色信息'] : mainData.type == '框架' ? ['产品明细折扣','产品类别折扣'] : ['工具清单']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <div slot="tags">
+      </div>
+      <div slot="customOperation" >
+        <editBtn 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 == '项目'">
+          <addProduct :disabled="mainData.status != '新建'" slot="addProduct" v-if="tool.checkAuth($route.name,'insert')" @onSuccess="$refs.billno.listData()"/>
+          <template v-slot:edit="scope">
+            <el-button 
+              class="inline-16" 
+              :disabled="mainData.status != '新建'" 
+              type="text" size="mini" slot="edit" 
+              @click="$refs.billno.editIndex = scope.data.sa_contract_itemsid;$refs.billno.form = Object.assign({},$refs.billno.form,scope.data)"
+            >编 辑</el-button>
+          </template>
+          <template v-slot:del="scope">
+            <delete-btn :nameId="20221123164502" :disabled="mainData.status != '新建'" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.billno.listData()"></delete-btn>
+          </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()"/>
+          <template v-slot:edit="scope">
+            <el-button 
+              class="inline-16" 
+              :disabled="mainData.status != '新建'" 
+              type="text" 
+              size="mini" 
+              slot="edit" 
+              @click="$refs.productDetailList.editIndex = scope.data.sa_contract_itemsid;$refs.productDetailList.form = Object.assign({},$refs.productDetailList.form,scope.data)"
+            >编 辑</el-button>
+          </template>
+          <template v-slot:del="scope">
+            <delete-btn :nameId="20221123164502" :disabled="mainData.status != '新建'" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.productDetailList.listData()"></delete-btn>
+          </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()"/>
+          <template v-slot:edit="scope">
+            <el-button 
+              class="inline-16" 
+              :disabled="mainData.status != '新建'" 
+              type="text" 
+              size="mini" 
+              slot="edit" 
+              @click="$refs.toolList.editIndex = scope.data.sa_contract_itemsid;$refs.toolList.form = Object.assign({},$refs.toolList.form,scope.data)"
+            >编 辑</el-button>
+          </template>
+          <template v-slot:del="scope">
+            <delete-btn :nameId="20221123164502" :disabled="mainData.status != '新建'" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.toolList.listData()"></delete-btn>
+          </template>
+        </toolList>
+      </div>
+      <div slot="slot1" >
+      </div>
+    </basicDetails>
+  </div>
 </template>
 
 <script>
+import Del from '../components/delete'
+import editBtn from '../components/editContract'
+import SubmitCheck from '../components/submitCheck'
+import productBillno from '../components/productList/productBillno'
+import productDetailList from '../components/productDetailList/productDetailList'
+import addProduct from '../components/productList/addProduct'
+import addProductDetail from '../components/productDetailList/addProduct'
+import addTool from '../components/toolList/addTool'
+import toolList from '../components/toolList/toolList'
 export default {
-  name: '',
+  name: "detail",
   data() {
     return {
-    };
+      mainData:{},
+      mainAreaData:{}
+    }
   },
-  computed:{
+  components:{
+    Del,
+    SubmitCheck,
+    editBtn,
+    productBillno,
+    addProduct,
+    productDetailList,
+    addProductDetail,
+    addTool,
+    toolList
   },
-  watch:{
+  methods:{
+    async queryMainData(id) {
+      const res = await this.$api.requested({
+        "id":20221121195102,
+        "content": {
+          "sa_contractid": this.$route.query.id
+        }
+      })
+      this.mainData = res.data
+      console.log(this.mainData);
+      
+      this.mainData.type == '项目' 
+        ? this.mainData.typemx == '直销' 
+          ? this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:'直销项目'}}) : this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:'经销项目'}})
+          : 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
+        },
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex,tabIndex) {
+      this.flag = false
+      tabIndex = this.$route.query.tabIndex
+      this.$router.replace({path:'/contractDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
+      this.queryMainData(id)
+    },
+    onSuccess(){
+      this.visible = false
+      this.queryMainData(this.$route.query.id)
+      this.$emit('onSuccess')
+    }
+  },
+  mounted () {
+    this.queryMainData(this.$route.query.id)
   },
-  methods: {},
-};
+  created() {
+  }
+}
 </script>
 
 <style scoped>
 
-</style>
+</style>

+ 0 - 27
src/HDrpManagement/projectChange/modules/modules/productSet/indexCopy1.vue

@@ -27,33 +27,6 @@
         </template>
       </tableLayout>
     </div>
-<!--    <basicLayout
-      ref="basicLayout" 
-      formPath="projectChange/productSet"
-      tableName="projectSetTable" 
-      idName="sa_projectid" 
-      :apiId="{query:20221021145702,del:20221021145602}"
-      :options="options"
-      @listCreate="list"
-      customTitle="产品配置单">
-      <template v-slot:tbList="scope">
-        <div v-if="scope.data.column.columnname == 'itemclass'">
-        </div>
-        <div v-else>
-          {{scope.data.column.data[scope.data.column.columnname] || scope.data.column.columnname == 'operation' ? scope.data.column.data[[scope.data.column.columnname]] : '&#45;&#45;'}}
-        </div>
-      </template>
-      <template v-slot:tbOpreation="scope">
-        &lt;!&ndash; <delete-btn
-          ref="del" 
-          :id="scope.data.data.itemid" 
-          @deleteCreate="$refs.del.param.content.deletereason='无'" 
-          @deleteSuccess="$refs.basicLayout.listData()" 
-          nameId="20221021145602" 
-          nameKey="sa_project_itemsids" 
-        ></delete-btn> &ndash;&gt;
-      </template>
-    </basicLayout>-->
     <div style="margin-top:16px;text-align:right">
       <el-pagination
           background

+ 1 - 1
src/HManagement/notice/pate/index.vue

@@ -3,7 +3,7 @@
     <list ref="list">
       <add v-if="tool.checkAuth($route.name,'insert')" slot="add" @addClick="addClick" style="margin-bottom:10px"></add>
       <template v-if="tool.checkAuth($route.name,'delete')" v-slot:del="scope">
-        <ondel :data="scope.data.data" @onSuccess="$refs.list.queryTypeList()"></ondel>
+        <ondel class="inline-16" :data="scope.data.data" @onSuccess="$refs.list.queryTypeList()"></ondel>
       </template>
       <template v-if="tool.checkAuth($route.name,'update')" v-slot:edit="scope">
         <edit class="inline-16" :data="scope.data.data" @onSuccess="$refs.list.queryTypeList()" @onEdit="onEdit"></edit>

+ 3 - 3
src/components/delete_btn/index.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="inline-16" :style="type=='detail'?'width:100%' : ''">
     <el-popconfirm title="确定删除当前产品吗?" @confirm="deleteRow()">
-      <el-button slot="reference" size="mini" v-if="type=='detail'">删 除</el-button>
-      <el-button slot="reference" size="mini" type="text" v-else>删 除</el-button>
+      <el-button slot="reference" size="mini" v-if="type=='detail'" :disabled="disabled">删 除</el-button>
+      <el-button slot="reference" size="mini" type="text" :disabled="disabled" v-else>删 除</el-button>
     </el-popconfirm>
   </div>
 </template>
@@ -14,7 +14,7 @@ nameId:接口id
 nameKey:接口字段
  */
 export default {
-  props: ['id','nameId','nameKey','type'],
+  props: ['id','nameId','nameKey','type','disabled'],
   data () {
     return {
       param: {

+ 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:900px"  border>
-      <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width" :fixed="col.columnname === fixedName?'right':false">
+    <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 : ''">
         <template slot-scope="scope">
           <!-- 自定义表格显示内容 -->
           <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>

+ 2 - 2
src/components/normal-basic-layout/index.vue

@@ -250,9 +250,9 @@ export default {
   border: 1px solid #dcdfe6 !important;
   cursor: pointer;
 }
-.layout_search__panel .el-input__suffix{
+/* .layout_search__panel .el-input__suffix{
   margin-top:-4px
-}
+} */
 </style>
 <style scoped>
 

+ 32 - 0
src/router/HDrpManagement.js

@@ -341,6 +341,38 @@ const HDrpManagement = [
           keeproute: true
         },
         component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/contractManage/modules/detail')
+      },
+      {
+        path: '/addContract',
+        name: 'contract',
+        meta: {
+          title: '新增合同',
+          ast_nav:true,
+          keeproute: true
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/contractManage/components/addContract')
+      },
+      {
+        path: '/editContract',
+        name: 'contract',
+        meta: {
+          title: '合同详情',
+          ast_nav:true,
+          keeproute: true
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/contractManage/modules/detail'),
+        children: [
+          {
+            path: '/editContract',
+            name: 'contract',
+            meta: {
+              title: '编辑合同',
+              ast_nav:true,
+              keeproute: true
+            },
+            component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/contractManage/components/editContract')
+          },
+        ]
       }
     ]
   },

+ 1 - 1
src/router/HManagement.js

@@ -199,7 +199,7 @@ const HManagement = [
     children: [
       {
         path: '/noticeclass',
-        name: 'noticeclass',
+        name: 'noticemag',
         meta: {
           title: '通告板块',
           ast_nav: true

+ 1 - 1
src/template/menber/index.vue

@@ -32,7 +32,7 @@
 		</div>
 	</div>
   <el-empty v-if="tableData.length === 0" description="暂无数据" :image-size="40"></el-empty>
-  <el-button size="mini" type="text" style="margin-top:16px;float:right" @click="onCancel">取 消</el-button>
+  <el-button size="mini" style="margin-top:16px;float:right" @click="onCancel">取 消</el-button>
 	<el-button size="mini" type="primary" style="margin-top:16px;float:right;margin-right:10px" @click="onSelect">确 定</el-button>
  	<div style="margin-top:16px;text-align:left">
     <el-pagination