戴艳蓉 3 rokov pred
rodič
commit
b30399e406
56 zmenil súbory, kde vykonal 2422 pridanie a 1310 odobranie
  1. BIN
      dist/static/img/search-not.29ce7ea9.png
  2. 119 0
      dist/static/js/0.js
  3. 9 0
      dist/static/js/app.js
  4. 6 0
      src/apis/components/search-exclusive.js
  5. 1 7
      src/apis/service/purchaseIn/workbench/index.js
  6. BIN
      src/assets/img/search-not.png
  7. 9 1
      src/assets/js/btnList.js
  8. 2 0
      src/components/globalComponents/search-exclusive/index.js
  9. 91 0
      src/components/globalComponents/search-exclusive/main.vue
  10. 0 0
      src/components/globalComponents/search-exclusive/专属类型选择框
  11. 2 0
      src/components/globalComponents/search-not/index.js
  12. 38 0
      src/components/globalComponents/search-not/main.vue
  13. 0 0
      src/components/globalComponents/search-not/未查找到数据
  14. 1 4
      src/components/globalComponents/search-spec/main.vue
  15. 6 5
      src/components/search-good-modal/columns.js
  16. 64 48
      src/components/search-good-modal/main.vue
  17. 40 58
      src/components/search-good-online-modal/columns.js
  18. 124 93
      src/components/search-good-online-modal/main.vue
  19. 151 137
      src/components/show-good-data-modal/ShowDataTableColumns.js
  20. 25 26
      src/components/show-good-data-modal/main.vue
  21. 10 18
      src/views/good-share/components/showBackGood.vue
  22. 26 32
      src/views/goodStore/active/columns.js
  23. 35 4
      src/views/goodStore/active/components/baseForm.vue
  24. 2 7
      src/views/goodStore/active/detail.vue
  25. 21 60
      src/views/goodStore/active/index.vue
  26. 24 13
      src/views/goodStore/activeGood/index.vue
  27. 19 9
      src/views/goodStore/goodsCost/columns.js
  28. 104 69
      src/views/goodStore/goodsCost/components/baseForm.vue
  29. 4 4
      src/views/goodStore/goodsCost/components/costFormAddEdit.vue
  30. 5 15
      src/views/goodStore/goodsCost/detail.vue
  31. 97 79
      src/views/goodStore/goodsOnline/ShowDataTableColumns.js
  32. 10 22
      src/views/goodStore/goodsOnline/columns.js
  33. 2 5
      src/views/goodStore/goodsOnline/components/fixed-price-form.vue
  34. 1 1
      src/views/goodStore/goodsOnline/components/online-exam-form.vue
  35. 8 7
      src/views/goodStore/goodsOnline/detail.vue
  36. 38 36
      src/views/goodStore/goodsOnline/index.vue
  37. 3 3
      src/views/purchaseIn/workbench/components/baseForm.vue
  38. 221 211
      src/views/purchaseIn/workbench/detail.vue
  39. 129 39
      src/views/purchaseIn/workbench/index.vue
  40. 0 80
      src/views/sellOut/bargainList/ShowDataTableColumns.js
  41. 1 5
      src/views/sellOut/bargainList/index.vue
  42. 0 32
      src/views/sellOut/bargainList/options.js
  43. 19 0
      src/views/sellOut/project/components/backGoodShow.vue
  44. 31 3
      src/views/sellOut/project/components/grossForm.vue
  45. 664 0
      src/views/sellOut/project/components/setPlan copy.vue
  46. 39 16
      src/views/sellOut/project/components/setPlan.vue
  47. 35 35
      src/views/sellOut/project/detail.vue
  48. 3 3
      src/views/sellOut/project/index.vue
  49. 10 10
      src/views/sellOut/stockApply/components/addEdit.vue
  50. 1 1
      src/views/sellOut/zixunOrder/columns.js
  51. 1 1
      src/views/sellOut/zixunOrder/components/addEditForm.vue
  52. 1 1
      src/views/sellOut/zixunOrder/components/editForm.vue
  53. 83 83
      src/views/sellOut/zixunOrder/components/feedbackList.vue
  54. 62 27
      src/views/sellOut/zixunOrder/detail.vue
  55. 24 0
      src/views/serviceParam/supplier/index.vue
  56. 1 0
      src/views/system/parameter/index.vue

BIN
dist/static/img/search-not.29ce7ea9.png


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 119 - 0
dist/static/js/0.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 9 - 0
dist/static/js/app.js


+ 6 - 0
src/apis/components/search-exclusive.js

@@ -0,0 +1,6 @@
+import http from "@/apis/axios";
+const api = "admin/";
+export default {
+  // 列表
+  list: (data, params) => http(api + "excluquery", data, "post", params),
+};

+ 1 - 7
src/apis/service/purchaseIn/workbench/index.js

@@ -3,13 +3,7 @@ import http from "@/apis/axios";
 const api = "admin/";
 export default {
   // 列表1
-  list1: (data, params) => http(api + "activitylist", data, "post", params),
-  // 列表2
-  list2: (data, params) => http(api + "activitylist", data, "post", params),
-  // 列表3
-  list3: (data, params) => http(api + "activitylist", data, "post", params),
-  // 列表4
-  list4: (data, params) => http(api + "activitylist", data, "post", params),
+  list: (data, params) => http(api + "crontablist", data, "post", params),
   // 任务详情
   detail: (data, params) => http(api + "consultzxinfo", data, "post", params),
   // 采返商品详情

BIN
src/assets/img/search-not.png


+ 9 - 1
src/assets/js/btnList.js

@@ -60,6 +60,14 @@ const btnList = [
   { code: "059", name: "财务审核定价" },
   { code: "060", name: "设置毛利率" },
   { code: "061", name: "查看毛利率" },
-  
+  //
+  { code: "062", name: "添加线上商品" },
+  { code: "063", name: "分享项目" },
+  { code: "064", name: "制定项目方案" },
+  { code: "065", name: "项目下单" },
+  { code: "066", name: "招标任务停止" },
+  { code: "067", name: "招标任务启动" },
+  { code: "068", name: "发起议价" },
+
 ];
 export default btnList;

+ 2 - 0
src/components/globalComponents/search-exclusive/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 91 - 0
src/components/globalComponents/search-exclusive/main.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-cascader
+    :size="size || 'medium'"
+    style="width: 100%"
+    filterable
+    clearable
+    v-model="values"
+    :options="options"
+    :placeholder="placeholder || ''"
+    :props="{
+      expandTrigger: 'hover',
+      children: 'child',
+      value: 'id',
+      label: 'name',
+    }"
+    :disabled="disabled"
+    @change="handleChange"
+  ></el-cascader>
+</template>
+
+<script>
+import asyncRequest from "@/apis/components/search-exclusive";
+export default {
+  name: "searchExclusive",
+  props: ["size", "value", "isDetail", "placeholder", "disabled"],
+  /**
+   * 属性集合
+   * @param {String}        size                   : 组件大小 非必填
+   * @param {Array}         value                  : 选中值  必填
+   * @param {String}        placeholder            : 提示信息            非必填
+   * @param {Boolean}       isDetail               : 是否是详情逻辑       必填
+   * @param {Boolean}       disabled               : 是否禁用            必填
+   */
+  /**
+   * 事件集合
+   * @selectChange            : 选中值变化调用   抛出选中数据
+   */
+  watch: {
+    value: function (val, old) {
+      this.values=val
+    },
+  },
+  data() {
+    return {
+      values:[],
+      options: [],
+      loading: true,
+    };
+  },
+  mounted() {
+    this.options = [];
+    this.loading = false;
+    this.remoteMethod();
+  },
+  methods: {
+    handleChange(value) {
+      this.$emit("selectChange", value);
+    },
+    async remoteMethod() {
+      this.loading = true;
+      this.options = [];
+      const { code, data, message } = await asyncRequest.list({});
+      if (code === 0) {
+        let list = JSON.parse(JSON.stringify(data));
+        list.map((e) => {
+          if (e.child.length === 0) {
+            delete e["child"];
+          } else {
+            e.child.map((a) => {
+              if (a.child.length === 0) {
+                delete a["child"];
+              }
+              return a;
+            });
+          }
+          return e;
+        });
+        this.options = list;
+      } else if (code >= 100 && code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(message);
+      }
+      this.loading = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 0 - 0
src/components/globalComponents/search-exclusive/专属类型选择框


+ 2 - 0
src/components/globalComponents/search-not/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 38 - 0
src/components/globalComponents/search-not/main.vue

@@ -0,0 +1,38 @@
+<template>
+  <div class="searchNot">
+    <img :src="errGif" />
+    <div class="searchNot-placeholder" v-if="placeholder">{{ placeholder }}</div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "searchNot",
+    props: [
+    "placeholder",
+  ],
+  data() {
+    return {
+      errGif: require("@/assets/img/search-not.png") + "?" + +new Date(),
+    };
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.searchNot {
+  width: 100%;
+  box-sizing: border-box;
+  padding: 18vh 160px 0 16px;
+  text-align: center;
+  img {
+    display: inline-block;
+    width: 200px;
+    margin: 0 0 20px 0;
+  }
+  .searchNot-placeholder {
+    color: #454545;
+    font-size: 14px;
+  }
+}
+</style>

+ 0 - 0
src/components/globalComponents/search-not/未查找到数据


+ 1 - 4
src/components/globalComponents/search-spec/main.vue

@@ -1,8 +1,4 @@
 <template>
-  <!-- multiple
-    filterable
-    remote
-    :multiple-limit="1" :remote-method="remoteMethod" -->
   <el-select
     v-model="value"
     filterable
@@ -104,6 +100,7 @@ export default {
       }
       this.selectLoading = false;
     },
+
   },
 };
 </script>

+ 6 - 5
src/components/search-good-modal/columns.js

@@ -19,6 +19,7 @@ export default [
   {
     prop: "cat_name",
     label: "分类",
+    "min-width": "100px",
   },
   {
     prop: "brand_name",
@@ -31,7 +32,7 @@ export default [
     width: "70px",
   },
   {
-    prop: "good_unit",
+    prop: "unit",
     label: "单位",
     width: "45px",
   },
@@ -44,22 +45,22 @@ export default [
   {
     prop: "supplierNo",
     label: "供应商编号",
-    width: "110px",
+    width: "160px",
   },
   {
     prop: "supplier_name",
     label: "供应商名称",
-    width: "110px",
+    width: "150px",
   },
   {
     prop: "companyNo",
     label: "业务公司编号",
-    width: "110px",
+    width: "160px",
   },
   {
     prop: "company",
     label: "业务公司名称",
-    width: "110px",
+    width: "150px",
   },
 
 

+ 64 - 48
src/components/search-good-modal/main.vue

@@ -50,12 +50,12 @@
               </el-col>
               <el-col :span="4" style="width: 228px; padding: 0 0 0 10px">
                 <search-brand
-                  :value="brandid"
-                  :disabled="type === 'view' || type === 'editCoin'"
+                  :value="parmValue.brandid"
+                  :disabled="false"
                   :size="'mini'"
-                  :isDetail="type !== 'add'"
-                  :names="brand_name"
-                  :placeholder="'商品品牌'"
+                  :isDetail="false"
+                  :names="''"
+                  :placeholder="'品牌'"
                   @searchChange="brandidsearchChange"
                 />
               </el-col>
@@ -81,28 +81,6 @@
                   />
                 </el-select>
               </el-col>
-              <!-- <el-col :span="4" style="width: 210px; padding: 0 0 0 10px">
-                <el-select
-                  v-model="parmValue.status"
-                  filterable
-                  clearable
-                  :size="searchSize"
-                  placeholder="状态"
-                  style="width: 100%"
-                  @change="
-                    pageInfo.curr = 1;
-                    parmValue.page = 1;
-                    searchList();
-                  "
-                >
-                  <el-option
-                    v-for="item in statusList"
-                    :key="'status' + item.code"
-                    :label="item.name"
-                    :value="item.code"
-                  />
-                </el-select>
-              </el-col> -->
               <el-col
                 :span="3"
                 class="fr"
@@ -134,8 +112,9 @@
               <el-col :span="4" style="width: 518px">
                 <el-input
                   :size="searchSize"
-                  v-model="parmValue.name"
+                  v-model="sinput"
                   :maxlength="40"
+                  clearable
                   @blur="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
@@ -149,7 +128,9 @@
                     placeholder="关键字类型"
                   >
                     <el-option label="商品编号" value="1" />
-                    <el-option label="商品名称" value="2" /> </el-select
+                    <el-option label="商品名称" value="2" />
+                    <el-option label="业务公司名称" value="3" />
+                    <el-option label="供应商名称" value="4" /> </el-select
                 ></el-input>
               </el-col>
               <el-col
@@ -226,6 +207,8 @@ export default {
         { id: "0", name: "否" },
         { id: "1", name: "是" },
       ],
+      sinput: "",
+      select: "1",
       options: [],
       selectLoading: false,
       searchName: "",
@@ -233,11 +216,15 @@ export default {
       loading: true,
       showModelThis: false,
       parmValue: {
-        type_code: "", // 商品属性code
+        type_code: "", // 是否定制
         supplierNo: "", // 供应商code
-        good_code: "", // 商品编码
+        cat_id: [],
+        brandid: [],
+        spucode: "", // 商品编码
         good_name: "", // 商品名称
-        wsmcode: "", //仓库code
+        status: "1", //
+        company: "",
+        supplier: "",
         page: 1, // 页码
         size: 15, // 每页显示条数
       },
@@ -267,8 +254,8 @@ export default {
     showModel: function (val) {
       this.showModelThis = val;
       if (val) {
-        this.supplierCode = [];
-        this.searchList();
+        // this.supplierCode = [];
+        this.restSearch();
       }
     },
     showModelThis(val) {
@@ -279,23 +266,29 @@ export default {
   },
 
   methods: {
-    supplierChange(e) {
-      if (e && e.length === 1) {
-        this.parmValue.supplierNo = e[0];
-      } else {
-        this.parmValue.supplierNo = "";
-      }
-      this.parmValue.page = 1;
-      this.searchList();
-    },
+    // supplierChange(e) {
+    //   if (e && e.length === 1) {
+    //     this.parmValue.supplierNo = e[0];
+    //   } else {
+    //     this.parmValue.supplierNo = "";
+    //   }
+    //   this.parmValue.page = 1;
+    //   this.searchList();
+    // },
     restSearch() {
-      this.supplierCode = [];
+      this.sinput = "";
+      this.select = "1";
+      // this.supplierCode = [];
       this.parmValue = {
-        type_code: "", // 商品属性code
+        type_code: "", // 是否定制
         supplierNo: "", // 供应商code
-        good_code: "", // 商品编码
+        spucode: "", // 商品编码
+        cat_id: [],
+        brandid: [],
         good_name: "", // 商品名称
-        wsmcode: "", //仓库code
+        status: "1", //
+        company: "",
+        supplier: "",
         page: 1, // 页码
         size: 15, // 每页显示条数
       };
@@ -307,9 +300,32 @@ export default {
       };
       this.searchList();
     },
+    async goods_class_change(e) {
+      this.parmValue.cat_id = e;
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+    async brandidsearchChange(e) {
+      const { id } = e;
+      this.parmValue.brandid = id ? [id] : [];
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.list(this.parmValue);
+      this.parmValue.spucode = this.select === "1" ? this.sinput : "";
+      this.parmValue.good_name = this.select === "2" ? this.sinput : "";
+      this.parmValue.company = this.select === "3" ? this.sinput : "";
+      this.parmValue.supplier = this.select === "4" ? this.sinput : "";
+      let model = JSON.parse(JSON.stringify(this.parmValue));
+      model.cat_id =
+        model.cat_id.length > 0 ? model.cat_id[model.cat_id.length - 1] : "";
+      model.brandid =
+        model.brandid.length > 0 ? model.brandid[model.brandid.length - 1] : "";
+
+      const res = await asyncRequest.list(model);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
         this.tableData.forEach((a) => {

+ 40 - 58
src/components/search-good-online-modal/columns.js

@@ -1,84 +1,66 @@
 export default [
   { type: "selection", fixed: "left", _noset_: true },
   {
-    prop: "good_code",
+    prop: "skuCode",
     label: "商品编码",
-    width: "150",
+    width: "160",
+  },
+  {
+    prop: "good_thumb_img",
+    label: "图片",
+    _slot_: "good_thumb_img", 
+    "width": "50",
   },
   {
     prop: "good_name",
     label: "商品名称",
+    // good_thumb_img
     "min-width": "120",
   },
-
   {
-    prop: "gys_code",
-    label: "供应商编码",
-    width: "142",
+    prop: "plat_code",
+    label: "平台商品编号",
+    "width": "160",
   },
   {
-    prop: "supplier_name",
-    label: "供货商",
-    "min-width": "160",
+    prop: "cat_name",
+    label: "商品分类",
+    width: "120",
   },
-  // {
-  //   prop: "cg_saler",
-  //   label: "采购员",
-  //   width: "60",
-  // },
-  // {
-  //   prop: "usable_stock",
-  //   label: "商品库存",
-  //   width: "70",
-  // },
+
   {
     prop: "unit",
     label: "单位",
     width: "45",
   },
-  // {
-  //   prop: "bstatus",
-  //   label: "当前状态",
-  //   _slot_: "status",
-  //   width: "80px",
-  // },
-
-
-  // {
-  //   prop: "classArr",
-  //   label: "商品类别",
-  // },
   {
-    prop: "color",
-    label: "商品颜色",
-    width: "70",
+    prop: "model",
+    label: "规格",
+    _slot_: "model",
+    width: "110",
+  },
+  
+  {
+    prop: "brand_name",
+    label: "品牌",
+    "width": "100",
   },
   {
-    prop: "material",
-    label: "商品材质",
-    width: "70",
+    prop: "is_stock",
+    label: "库存类型",
+    _slot_: "is_stock",
+    "width": "100",
   },
+  
   {
-    prop: "brand",
-    label: "品牌",
-    "width": "70",
+    prop: "platform_name",
+    label: "所属平台",
+    "width": "100",
+  },
+  
+  {
+    prop: "company",
+    label: "业务公司",
+    "min-width": "150",
   },
-  // {
-  //   prop: "good_type",
-  //   label: "商品类型",
-  // },
-  // {后端有接口但是没有值。
-  //   prop: "specs",
-  //   label: "商品规格",
-  // },
-
-  // {
-  //   prop: "",
-  //   label: "操作",
-  //   width: "80px",
-  //   fixed: "right",
-  //   _noset_: true,
-  //   _slot_: "operation",
-  // },
-
 ]

+ 124 - 93
src/components/search-good-online-modal/main.vue

@@ -39,31 +39,25 @@
           <div style="width: 100%">
             <el-row style="margin-top: -15px">
               <el-col :span="24">
-                <el-col :span="4" style="width: 280px; padding: 0 0 0 0px">
-                  <el-input
+                <el-col :span="4" style="width: 210px">
+                  <search-brand
+                    :value="parmValue.brandid"
+                    :disabled="false"
                     :size="'mini'"
-                    v-model="parmValue.good_code"
-                    :maxlength="40"
-                    clearable
-                    placeholder="商品分类"
+                    :isDetail="false"
+                    :names="''"
+                    :placeholder="'品牌'"
+                    @searchChange="brandidsearchChange"
                   />
                 </el-col>
-                <el-col :span="4" style="width: 190px; padding: 0 0 0 10px">
-                  <el-input
-                    :size="'mini'"
-                    v-model="parmValue.good_code"
-                    :maxlength="40"
-                    clearable
-                    placeholder="所属平台"
-                  />
-                </el-col>
-                <el-col :span="4" style="width: 260px; padding: 0 0 0 10px">
-                  <el-input
-                    :size="'mini'"
-                    v-model="parmValue.good_code"
-                    :maxlength="40"
-                    clearable
-                    placeholder="商品编号"
+                <el-col :span="6" style="width: 370px; padding: 0 0 0 10px">
+                  <good-class
+                    :value="parmValue.cat_id"
+                    @handleChange="goods_class_change"
+                    :disabled="false"
+                    :size="searchSize"
+                    :isDetail="false"
+                    :placeholder="'分类'"
                   />
                 </el-col>
 
@@ -89,51 +83,24 @@
                 </el-col>
               </el-col>
               <el-col :span="24" style="padding: 10px 0 0 0">
-                <el-col :span="4" style="width: 280px; padding: 0">
-                  <el-select
-                    v-model="supplierCode"
-                    multiple
-                    filterable
-                    remote
-                    :multiple-limit="1"
-                    reserve-keyword
-                    :size="'mini'"
-                    clearable
-                    style="width: 100%"
-                    :placeholder="'供应商名称'"
-                    :remote-method="remoteMethod"
-                    :loading="selectLoading"
-                    @change="supplierChange"
-                  >
-                    <el-option
-                      v-for="(item, index) in options"
-                      :key="item.id + index"
-                      :label="item.name"
-                      :value="item.code + ''"
-                      :disabled="item.status !== '1'"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-col>
-                <el-col :span="4" style="width: 190px; padding: 0 0 0 10px">
-                  <el-select v-model="parmValue.value"  :size="'mini'" placeholder="库存类型">
-                    <el-option
-                      v-for="item in options"
-                      :key="item.id"
-                      :label="item.name"
-                      :value="item.id"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-col>
-                <el-col :span="4" style="width: 260px; padding: 0 0 0 10px">
+                <el-col :span="4" style="width: 450px">
                   <el-input
+                    clearable
                     :size="'mini'"
-                    v-model="parmValue.good_name"
+                    v-model="sinput"
                     :maxlength="40"
-                    clearable
-                    placeholder="商品名称"
-                  />
+                    placeholder="关键字"
+                  >
+                    <el-select
+                      v-model="select"
+                      style="width: 120px"
+                      slot="prepend"
+                      placeholder="关键字类型"
+                    >
+                      <el-option label="商品名称" value="1" />
+                      <el-option label="商品编码" value="2" />
+                      <el-option label="平台商品编码" value="3" /> </el-select
+                  ></el-input>
                 </el-col>
 
                 <el-col :span="3" style="width: 66px; float: right">
@@ -150,6 +117,29 @@
             </el-row>
           </div>
         </template>
+        <template #good_thumb_img="{ scope }">
+          <div
+            v-if="scope.row.good_thumb_img"
+            style="width: 20px; height: 20px"
+            class="hover"
+            v-viewer
+          >
+            <img
+              :src="scope.row.good_thumb_img"
+              style="display: inline-block; width: 100%; height: 100%"
+              alt=""
+            />
+          </div>
+        </template>
+        <template #model="{ scope }">
+          <span v-for="(si, sii) in scope.row.specinfo" :key="si.spec_id">
+            <span v-if="sii !== 0">--</span
+            ><span>{{ si.spec_name }}[{{ si.spec_value }}]</span></span
+          >
+        </template>
+        <template #is_stock="{ scope }">
+          <span>{{ scope.row.is_stock === "1" ? "库存品" : "非库存品" }} </span>
+        </template>
       </ex-table>
     </el-card>
   </el-dialog>
@@ -167,7 +157,7 @@ export default {
   computed: {
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
   },
-  props: ["showModel", "once"],
+  props: ["showModel", "once", "sitem", "active"],
 
   /**
    * 属性集合
@@ -180,7 +170,9 @@ export default {
    */
   data() {
     return {
-      options: [
+      select: "1",
+      sinput: "",
+      is_stock: [
         { id: "0", name: "非库存品" },
         { id: "1", name: "库存品" },
       ],
@@ -190,11 +182,15 @@ export default {
       loading: true,
       showModelThis: false,
       parmValue: {
-        type_code: "", // 商品属性code
-        supplierNo: "", // 供应商code
+        platform_code: [],
+        companyNo: "",
+        is_stock: "",
+        exam_status: "",
+        cat_id: [], // 商品属性code
+        brandid: [],
         good_code: "", // 商品编码
         good_name: "", // 商品名称
-        wsmcode: "", //仓库code
+        plat_code: "",
         page: 1, // 页码
         size: 15, // 每页显示条数
       },
@@ -224,8 +220,7 @@ export default {
     showModel: function (val) {
       this.showModelThis = val;
       if (val) {
-        this.supplierCode = [];
-        this.searchList();
+        this.restSearch();
       }
     },
     showModelThis(val) {
@@ -236,23 +231,21 @@ export default {
   },
 
   methods: {
-    supplierChange(e) {
-      if (e && e.length === 1) {
-        this.parmValue.supplierNo = e[0];
-      } else {
-        this.parmValue.supplierNo = "";
-      }
-      this.parmValue.page = 1;
-      this.searchList();
-    },
     restSearch() {
-      this.supplierCode = [];
+      console.log(this.active);
+      console.log(this.sitem);
+      const { platform_code, company_id, is_stock } = this.sitem;
+
       this.parmValue = {
-        type_code: "", // 商品属性code
-        supplierNo: "", // 供应商code
+        platform_code: this.active ? platform_code : [],
+        companyNo: this.active ? company_id : "",
+        is_stock: this.active ? is_stock : "",
+        cat_id: [], // 商品属性code
+        brandid: [],
+        exam_status: this.active ? "6" : "",
         good_code: "", // 商品编码
         good_name: "", // 商品名称
-        wsmcode: "", //仓库code
+        plat_code: "",
         page: 1, // 页码
         size: 15, // 每页显示条数
       };
@@ -264,19 +257,57 @@ export default {
       };
       this.searchList();
     },
+    async goods_class_change(e) {
+      this.parmValue.cat_id = e;
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+    async brandidsearchChange(e) {
+      const { id } = e;
+      this.parmValue.brandid = id ? [id] : [];
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+    async platform_codesearchChange(e) {
+      const { id, code, label } = e;
+      this.parmValue.platform_code = id ? [id] : [];
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
+    async company_idsearchChange(e) {
+      const { id, code, label } = e;
+      this.parmValue.company_id = code || "";
+      this.pageInfo.curr = 1;
+      this.parmValue.page = 1;
+      await this.searchList();
+    },
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.list(this.parmValue);
+      let model = JSON.parse(JSON.stringify(this.parmValue));
+      model.cat_id =
+        model.cat_id.length > 0 ? model.cat_id[model.cat_id.length - 1] : "";
+      model.brandid =
+        model.brandid.length > 0 ? model.brandid[model.brandid.length - 1] : "";
+      model.platform_code =
+        model.platform_code.length > 0
+          ? model.platform_code[model.platform_code.length - 1]
+          : "";
+      const res = await asyncRequest.list(model);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
-        // this.tableData.map((v) => {
-        //   // v.sale_price = this.setNum(v.sale_price);
-        //   // v.sale_fee = this.setNum(v.sale_fee);
-        //   // // v.num =
-        //   // //pa (v.sale_price);
-        //   return v;
-        // });
-        //
+        this.tableData.map((e) => {
+          e.cat_name = "";
+          if (e.cat_info && e.cat_info.length > 0) {
+            e.cat_info.forEach((si, sii) => {
+              e.cat_name += `${sii !== 0 ? "_" : ""}${si.name}`;
+            });
+          }
+          return e;
+        });
+
         this.pageInfo.total = Number(res.data.count);
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();

+ 151 - 137
src/components/show-good-data-modal/ShowDataTableColumns.js

@@ -26,10 +26,15 @@ export default [
   {
     prop: "online_reason",
     label: "上线原因",
+  },
+    {
+      prop: "skuCode",
+      label: "上线后商品编号",
+      span: 8,
   },
   {
     prop: "spuCode",
-    label: "商品编号",
+    label: "成本商品编号",
     span: 8,
   },
 
@@ -49,21 +54,17 @@ export default [
     label: "平台商品编码",
     span: 8,
   },
-  {
-    prop: "online_time",
-    label: "上线时间",
-    span: 8,
-  },
+  // {
+  //   prop: "online_time",
+  //   label: "上线时间",
+  //   span: 8,
+  // },
   {
     prop: "cat",
     label: "分类",
     span: 8,
   },
-  {
-    prop: "online_remark",
-    label: "上线备注",
-    span: 24,
-  },
+  
   {
     prop: "brand_name",
     label: "品牌",
@@ -72,160 +73,169 @@ export default [
   {
     prop: "unit",
     label: "单位",
-    span: 8,
-  },
-
-  {
-    prop: "is_auth",
-    label: "供应商权限",
-    _slot_: "is_auth",
-    span: 8,
-  },
-  {
-    prop: "exclusive",
-    label: "专属类型",
-    // _slot_: "exclusive",
-    span: 8,
-  },
-  {
-    prop: "weight",
-    label: "商品总克重",
-    span: 8,
-  },
-  {
-    prop: "is_stock",
-    label: "是否库存品",
-    _slot_: "is_stock",
-    span: 8,
+    span: 4,
   },
   {
     prop: "tax",
     label: "税点",
-    span: 8,
+    append: '%',
+    span: 4,
   },
+
+  // {
+  //   prop: "is_auth",
+  //   label: "供应商权限",
+  //   _slot_: "is_auth",
+  //   span: 6,
+  // },
   {
     prop: "good_type",
     label: "是否定制",
     _slot_: "good_type",
     span: 8,
   },
-
   {
-    prop: "packing_list",
-    label: "包装清单",
-    span: 8,
+    prop: "is_stock",
+    label: "是否库存品",
+    _slot_: "is_stock",
+    span: 6,
   },
+ 
+ 
   {
-    prop: "packing_way",
-    label: "包装方式",
-    span: 8,
+    prop: "delivery_day",
+    label: "物流时间",
+    append: '天',
+    span: 6,
   },
   {
-    prop: "packing_spec",
-    label: "装箱规格",
-    span: 8,
+    prop: "lead_time",
+    label: "供货周期",
+    append: '天',
+    span: 6,
   },
   {
-    prop: "packing_weight",
-    label: "装箱重量(g)",
-    span: 8,
+    prop: "sample_day",
+    label: "调样周期",
+    append: '天',
+    span: 6,
   },
+  
   {
-    prop: "packing_size",
-    label: "装箱尺寸",
+    prop: "exclusive",
+    label: "专属类型",
+    _slot_: "exclusive",
     span: 8,
   },
   {
-    prop: "good_bar",
-    label: "商品条形码",
+    prop: "weight",
+    label: "商品总克重",
+    append: 'g',
     span: 8,
   },
+
+  // {
+  //   prop: "packing_list",
+  //   label: "包装清单",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "packing_way",
+  //   label: "包装方式",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "packing_spec",
+  //   label: "装箱规格",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "packing_weight",
+  //   label: "装箱重量(g)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "packing_size",
+  //   label: "装箱尺寸",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "good_bar",
+  //   label: "商品条形码",
+  //   span: 8,
+  // },
   {
     prop: "supply_area",
     label: "供货区域",
     _slot_: "supply_area",
     span: 8,
   },
-  {
-    prop: "delivery_place_cn",
-    label: "发货地",
-    span: 8,
-  },
-  {
-    prop: "origin_place_cn",
-    label: "产地",
-    span: 8,
-  },
-  {
-    prop: "delivery_day",
-    label: "物流时间(天)",
-    span: 8,
-  },
-  {
-    prop: "lead_time",
-    label: "供货周期(天)",
-    span: 8,
-  },
-  {
-    prop: "sample_day",
-    label: "调样周期(天)",
-    span: 8,
-  },
+  // {
+  //   prop: "delivery_place_cn",
+  //   label: "发货地",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "origin_place_cn",
+  //   label: "产地",
+  //   span: 8,
+  // },
 
 
-  {
-    prop: "cert_fee",
-    label: "证书费(元)",
-    span: 8,
-  },
-  {
-    prop: "packing_fee",
-    label: "包装费(元)",
-    span: 8,
-  },
-  {
-    prop: "cost_fee",
-    label: "成本工艺费(元)",
-    span: 8,
-  },
 
-  {
-    prop: "mark_fee",
-    label: "加标费(元)",
-    span: 8,
-  },
-  {
-    prop: "demo_fee",
-    label: "打样费(元)",
-    span: 8,
-  },
-  {
-    prop: "open_fee",
-    label: "开模费(元)",
-    span: 8,
-  },
+  // {
+  //   prop: "cert_fee",
+  //   label: "证书费(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "packing_fee",
+  //   label: "包装费(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "cost_fee",
+  //   label: "成本工艺费(元)",
+  //   span: 8,
+  // },
 
-  {
-    prop: "sample_fee",
-    label: "调样费(元)",
-    span: 8,
-  },
-  {
-    prop: "market_price",
-    label: "市场价(元)",
-    span: 8,
-  },
-  {
-    prop: "nake_price",
-    label: "含税成本合计",
-    span: 8,
-  },
-  {
-    prop: "is_step",
-    label: "启用阶梯",
-    _slot_: "is_step",
-    span: 8,
-  },
+  // {
+  //   prop: "mark_fee",
+  //   label: "加标费(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "demo_fee",
+  //   label: "打样费(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "open_fee",
+  //   label: "开模费(元)",
+  //   span: 8,
+  // },
+
+  // {
+  //   prop: "sample_fee",
+  //   label: "调样费(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "market_price",
+  //   label: "市场价(元)",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "nake_price",
+  //   label: "成本裸价",
+  //   span: 8,
+  // },
+  // {
+  //   prop: "is_step",
+  //   label: "启用阶梯",
+  //   _slot_: "is_step",
+  //   span: 8,
+  // },
   {
     prop: "exam_status",
     label: "状态",
@@ -243,7 +253,11 @@ export default [
     span: 8,
   },
 
-
+  {
+    prop: "online_remark",
+    label: "上线备注",
+    span: 24,
+  },
   {
     prop: "after_sales",
     label: "售后说明",
@@ -261,12 +275,12 @@ export default [
     span: 24,
   },
 
-  {
-    prop: "purchase",
-    label: "采购起订量信息",
-    _slot_: "purchase",
-    span: 24,
-  },
+  // {
+  //   prop: "purchase",
+  //   label: "采购起订量信息",
+  //   _slot_: "purchase",
+  //   span: 24,
+  // },
   {
     prop: "ladderlist",
     label: "销售起订量",

+ 25 - 26
src/components/show-good-data-modal/main.vue

@@ -16,6 +16,7 @@
   >
     <el-card style="margin-top: -20px" class="modal-form-style">
       <show-data-table
+        style="margin: 0; padding: 0"
         :newTime="newTime"
         v-if="newTime !== ''"
         :sitem="sitem"
@@ -56,15 +57,11 @@
             "
           />
         </template>
-        <!-- <template slot="exclusive">
-                  <el-tag
-                    :size="'mini'"
-                    v-text="
-                      (options2.find((item) => item.id == sitem.exclusive) || {})
-                        .name || '--'
-                    "
-                  />
-                </template> -->
+        <template slot="exclusive">
+          <span v-for="(si, sii) in sitem.exclusive" :key="si.id"
+            ><span v-if="sii !== 0">/</span><span>{{ si.name }}</span>
+          </span>
+        </template>
         <template slot="is_stock">
           <el-tag
             :size="'mini'"
@@ -128,23 +125,25 @@
             <el-table-column prop="delivery_fee" label="其中运费" />
           </el-table>
         </template>
-         <template slot="ladderlist">
-                  <el-table
-                    :data="ladderlist"
-                    :size="'mini'"
-                    border
-                    stripe
-                    style="width: 99%; margin: 10px 10px 10px 0"
-                  >
-                    <el-table-column prop="min_num" label="起订量(>=)" />
-                    <el-table-column prop="sale_price" label="售价" />
-                    <el-table-column prop="market_price" label="市场价" />
-                    <el-table-column prop="market_platform" label="对比平台" />
-                    <el-table-column prop="status" label="状态" >
-                       <template slot-scope="scope">{{scope.row.status==='1'?'启用':"禁用"}}</template>
-                    </el-table-column>
-                  </el-table>
-                </template>
+        <template slot="ladderlist">
+          <el-table
+            :data="sitem.ladderlist"
+            :size="'mini'"
+            border
+            stripe
+            style="width: 99%; margin: 10px 10px 10px 0"
+          >
+            <el-table-column prop="min_num" label="起订量(>=)" />
+            <el-table-column prop="sale_price" label="售价" />
+            <el-table-column prop="market_price" label="市场价" />
+            <el-table-column prop="market_platform" label="对比平台" />
+            <el-table-column prop="status" label="状态">
+              <template slot-scope="scope">{{
+                scope.row.status === "1" ? "启用" : "禁用"
+              }}</template>
+            </el-table-column>
+          </el-table>
+        </template>
       </show-data-table>
     </el-card>
   </el-dialog>

+ 10 - 18
src/views/good-share/components/showBackGood.vue

@@ -94,10 +94,8 @@
             </template>
           </div>
           <div class="project-backGoodShow-title">
-            选择方案
-            <span v-if="plan_show" class="fr"
-              >方案总金额:{{ plan_show.sale_total }}元</span
-            >
+           {{status==='5'||status==='6'?'已选定方案':'选择方案'}} 
+          
             <el-button-group
               :size="'mini'"
               class="fr"
@@ -143,13 +141,9 @@
                 >选定方案,并提交
               </el-button>
             </el-button-group>
-            <!-- <el-button
-                type="primary"
-                class="fr"
-                @click="save_plan"
-                :size="'mini'"
-                >保存方案<i class="el-icon-upload el-icon--right"></i>
-              </el-button> -->
+              <span v-if="plan_show" class="fr"
+              >方案总金额:{{ plan_show.sale_total }}元</span
+            >
           </div>
           <div
             class="project-setPlan-backGood-table"
@@ -222,12 +216,12 @@
                 label="规格"
                 show-overflow-tooltip
               />
-              <el-table-column
+              <!-- <el-table-column
                 prop="delivery_day"
                 label="物流时间"
                 width="85"
                 show-overflow-tooltip
-              />
+              /> -->
             </el-table>
           </div>
         </div>
@@ -250,11 +244,9 @@ export default {
     //     this.initForm();
     //   }
     // },
-    // showModelThis(val) {
-    //   if (!val) {
-    //     this.$emit("cancel");
-    //   }
-    // },
+    newTime(val) {
+         this.initForm();
+    },
   },
   data() {
     return {

+ 26 - 32
src/views/goodStore/active/columns.js

@@ -32,60 +32,54 @@ const options6 = [
 ]
 const listCol = [
   {
-    prop: "cgdNo",
-    label: "采购单编号",
-    width: "160px",
+    prop: "activity_code",
+    label: "活动编码",
+    fixed: "left",
+    width: "155",
   },
   {
-    prop: "apply_name",
-    label: "申请人",
-    width: "65px",
+    prop: "activity_name",
+    label: "活动名称",
   },
   {
-    prop: "good_code",
-    label: "商品编码",
-    width: "150px",
-  },
-  {
-    prop: "good_name",
-    label: "商品名称",
-  },
-  {
-    prop: "class_cat",
-    label: "商品分类",
+    prop: "status",
+    label: "状态",
+    width: "105",
+    _slot_: "status",
   },
 
   {
-    prop: "good_weight",
-    label: "商品总重量(g)",
-    width: "110px",
+    prop: "atime",
+    label: "活动时间",
+    _slot_: "atime",
+    width: "270",
   },
+  // {
+  //   prop: "platform_code",
+  //   label: "平台编号",
+  // },
   {
-    prop: "diff_weight",
-    label: "工差总重量(g)",
-    width: "110px",
+    prop: "platform_name",
+    label: "平台名称",
   },
-
   {
-    prop: "status",
-    label: "状态",
-    _slot_: "status",
-    width: "120px",
+    prop: "creater",
+    label: "创建人",
+    width: "60",
   },
   {
     prop: "addtime",
     label: "创建时间",
-    width: "140px",
-    sortable: true,
+    width: "142",
   },
   {
     prop: "",
     label: "操作",
     fixed: "right",
     _noset_: true,
-    width: "52px",
     _slot_: "operation",
+    width: "50",
   },
 ]
 
-export  { options1, options2, options3, options4, options5, options6,listCol }
+export { options1, options2, options3, options4, options5, options6, listCol }

+ 35 - 4
src/views/goodStore/active/components/baseForm.vue

@@ -53,7 +53,7 @@
                     type="datetime"
                     placeholder="开始时间"
                     :disabled="status !== ''"
-                    value-format="yyyy-MM-dd hh:mm:ss"
+                    value-format="yyyy-MM-dd HH:mm:ss"
                     :picker-options="pickerOptions1"
                     v-model="ruleForm.activity_start"
                     style="width: 100%"
@@ -65,7 +65,7 @@
                 <el-form-item prop="activity_end">
                   <el-date-picker
                     type="datetime"
-                    value-format="yyyy-MM-dd hh:mm:ss"
+                    value-format="yyyy-MM-dd HH:mm:ss"
                     placeholder="结束时间"
                     :disabled="status !== ''"
                     :picker-options="pickerOptions2"
@@ -82,8 +82,10 @@
             <el-select
               v-model="ruleForm.is_stock"
               style="width: 100%"
+              :size="'mini'"
               :disabled="status !== ''"
               placeholder="库存类型"
+              @change="is_stock_change"
             >
               <el-option
                 v-for="item in is_stock"
@@ -143,6 +145,7 @@
                 show-overflow-tooltip
               />
               <el-table-column
+                v-if="!(status === '' || status === '0')"
                 prop="activity_stock"
                 label="活动库存"
                 width="100"
@@ -163,18 +166,25 @@
                 show-overflow-tooltip
               />
               <el-table-column
+                v-if="!(status === '' || status === '0')"
                 prop="sale_price"
                 label="非活动价(元)"
                 width="100"
                 show-overflow-tooltip
               />
               <el-table-column
+                v-if="!(status === '' || status === '0')"
                 prop="activity_price"
                 label="活动价(元)"
                 width="100"
                 show-overflow-tooltip
               />
-              <el-table-column prop="status" label="审核状态" width="100">
+              <el-table-column
+                prop="status"
+                label="审核状态"
+                width="100"
+                v-if="!(status === '' || status === '0')"
+              >
                 <template slot-scope="scope">
                   <el-tag
                     :size="'mini'"
@@ -196,6 +206,7 @@
                 </template>
               </el-table-column>
               <el-table-column
+                v-if="!(status === '' || status === '0')"
                 prop="remark"
                 label="审核备注"
                 width="100"
@@ -249,6 +260,8 @@
     </el-form>
     <search-good-online-modal
       :once="once"
+      :sitem="ruleForm"
+      :active="true"
       :show-model="showModel"
       @resultList="resultList"
       @cancel="showModel = false"
@@ -465,6 +478,20 @@ export default {
         this.ruleForm.good_list = [];
       }
     },
+    is_stock_change(e) {
+      const { is_stock } = this.ruleForm;
+      console.log(is_stock, e);
+      let hs_is_stock = "0";
+      if (this.ruleForm.good_list && this.ruleForm.good_list.length > 0) {
+        hs_is_stock = this.ruleForm.good_list[0].is_stock;
+      }
+      if (is_stock !== hs_is_stock) {
+        this.ruleForm.good_list = [];
+      }
+
+      console.log(this.ruleForm.good_list);
+      //
+    },
     platform_codesearchChange(e) {
       let old = JSON.parse(JSON.stringify(this.ruleForm.platform_code));
       console.log(e);
@@ -523,7 +550,7 @@ export default {
       console.log(row);
     },
     openEdit() {
-      const { company_id, platform_code } = this.ruleForm;
+      const { company_id, platform_code, is_stock } = this.ruleForm;
       if (platform_code.length === 0) {
         this.$message.warning("请选择平台!");
         return;
@@ -532,6 +559,10 @@ export default {
         this.$message.warning("请选择业务企业!");
         return;
       }
+      if (is_stock === "") {
+        this.$message.warning("请选择库存类型!");
+        return;
+      }
       this.showModel = true;
     },
     async submitForm() {

+ 2 - 7
src/views/goodStore/active/detail.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="activeDetail">
-    <div>{{ powers }},{{ status }}</div>
+    <!-- <div>{{ powers }},{{ status }}</div> -->
     <div
       class="activeDetail-main"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
@@ -203,12 +203,7 @@ export default {
       console.log(row);
     },
     refresh(e) {
-      const { spuCode } = e;
-      let model = {
-        id: this.queryType === "add" ? spuCode : this.queryId,
-        type: "view",
-      };
-      this.routeReGoto("activeDetail", model);
+      this.routeReGoto("active", {});
     },
     async initData() {
       this.loading = true;

+ 21 - 60
src/views/goodStore/active/index.vue

@@ -101,6 +101,7 @@
                 :size="searchSize"
                 v-model="sinput"
                 :maxlength="40"
+                clearable
                 @blur="
                   pageInfo.curr = 1;
                   parmValue.page = 1;
@@ -140,7 +141,15 @@
       <template #status="{ scope }">
         <el-tag
           :size="tablebtnSize"
-          :type="scope.row.status == '0' ? 'warning' : ''"
+          :type="
+            scope.row.status == '4'
+              ? ''
+              : scope.row.status == '8'
+              ? 'danger'
+              : scope.row.status == '5' || scope.row.status == '7'
+              ? 'info'
+              : 'warning'
+          "
           v-text="
             (statusOptions.find((item) => item.id == scope.row.status) || {})
               .label || '--'
@@ -185,6 +194,7 @@ import asyncRequest from "@/apis/service/goodStore/active";
 import mixinPage from "@/mixins/elPaginationHandle";
 import { mapGetters } from "vuex";
 import resToken from "@/mixins/resToken";
+import { listCol } from "./columns";
 export default {
   name: "active",
   mixins: [mixinPage, resToken],
@@ -247,57 +257,7 @@ export default {
         total: 0,
       },
       // 表格 - 列参数
-      columns: [
-        {
-          prop: "activity_code",
-          label: "活动编码",
-          fixed: "left",
-          width: "155",
-        },
-        {
-          prop: "activity_name",
-          label: "活动名称",
-        },
-        {
-          prop: "status",
-          label: "状态",
-          width: "105",
-          _slot_: "status",
-        },
-
-        {
-          prop: "atime",
-          label: "活动时间",
-          _slot_: "atime",
-          width: "270",
-        },
-        {
-          prop: "platform_code",
-          label: "平台编号",
-        },
-        {
-          prop: "platform_name",
-          label: "平台名称",
-        },
-        {
-          prop: "creater",
-          label: "创建人",
-          width: "60",
-        },
-        {
-          prop: "addtime",
-          label: "创建时间",
-          width: "142",
-        },
-        {
-          prop: "",
-          label: "操作",
-          fixed: "right",
-          _noset_: true,
-          _slot_: "operation",
-          width: "50",
-        },
-      ],
+      columns: listCol,
     };
   },
   mounted() {
@@ -325,20 +285,21 @@ export default {
       };
       this.searchList();
     },
-    platform_codesearchChange(e) {
-      if (e) {
+   async platform_codesearchChange(e) {
         const { id, code, label } = e;
         this.parmValue.platform_code = id ? [id] : [];
-      }
+         this.pageInfo.curr = 1;
+        this.parmValue.page = 1;
+        await this.searchList();
     },
 
-    company_idsearchChange(e) {
-      console.log(e);
-      let old = this.parmValue.company_id;
-      if (e) {
+   async company_idsearchChange(e) {
+    
         const { id, code, label } = e;
         this.parmValue.company_id = code || "";
-      }
+         this.pageInfo.curr = 1;
+        this.parmValue.page = 1;
+        await this.searchList();
     },
     // 新建/编辑/详情
     openModal(row, type) {

+ 24 - 13
src/views/goodStore/activeGood/index.vue

@@ -41,10 +41,10 @@
                   "
                 >
                   <el-option
-                    v-for="item in statusList"
-                    :key="'status' + item.code"
-                    :label="item.name"
-                    :value="item.code"
+                    v-for="item in statusOptions"
+                    :key="'status' + item.id"
+                    :label="item.label"
+                    :value="item.id"
                   />
                 </el-select>
               </el-col>
@@ -52,6 +52,7 @@
                 <el-input
                   :size="searchSize"
                   v-model="parmValue.skuCode"
+                   clearable
                   :maxlength="40"
                   @blur="
                     pageInfo.curr = 1;
@@ -66,6 +67,7 @@
                   :size="searchSize"
                   v-model="parmValue.good_name"
                   :maxlength="40"
+                   clearable
                   @blur="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
@@ -105,6 +107,7 @@
                   :size="searchSize"
                   v-model="parmValue.activity_code"
                   :maxlength="40"
+                  clearable
                   @blur="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
@@ -118,6 +121,7 @@
                   :size="searchSize"
                   v-model="parmValue.activity_name"
                   :maxlength="40"
+                   clearable
                   @blur="
                     pageInfo.curr = 1;
                     parmValue.page = 1;
@@ -251,7 +255,8 @@ export default {
         {
           prop: "skuCode",
           label: "商品编号",
-          width: "170",
+            fixed: "left",
+          width: "160",
         },
         {
           prop: "good_name",
@@ -272,33 +277,39 @@ export default {
           label: "起订量",
         },
 
-        {
-          prop: "cost_price",
-          label: "成本单价",
-        },
+        // {
+        //   prop: "cost_price",
+        //   label: "成本单价",
+        //     width:"100px"
+        // },
         {
           prop: "sale_price",
           label: "非活动价",
+            width:"100px"
         },
         {
           prop: "activity_price",
           label: "活动价",
+          width:"100px"
         },
-        {
-          prop: "platform_code",
-          label: "平台编号",
-        },
+        // {
+        //   prop: "platform_code",
+        //   label: "平台编号",
+        // },
         {
           prop: "platform_name",
           label: "平台名称",
+           width:"100px"
         },
         {
           prop: "activity_code",
           label: "活动编号",
+          width:"160px"
         },
         {
           prop: "activity_name",
           label: "活动名称",
+          width:"120px"
         },
         {
           prop: "",

+ 19 - 9
src/views/goodStore/goodsCost/columns.js

@@ -117,21 +117,23 @@ const listCol = [
   },
 ]
 const validate_num = (rule, value, callback) => {
-  if (value === "") {
+  const { required } = rule
+  if (required && value === "") {
     callback(new Error("不能为空!"));
   } else {
     callback();
   }
 };
 const validate_num_0 = (rule, value, callback) => {
-  if (value === "") {
+  const { required } = rule
+  if (required && value === "") {
     callback(new Error("不能为空!"));
-  } else if (value === "0" ||
+  } else if (required && (value === "0" ||
     value === "0." ||
     value === "0.0" ||
     value === "0.00" ||
     value === "0.000"
-  ) {
+  )) {
     callback(new Error("不能为零!"));
   } else {
     callback();
@@ -142,15 +144,15 @@ const rules = {
     {
       type: "array",
       required: true,
-      message: "商品分类",
+      message: "请选择商品分类",
       trigger: "change",
     },
   ],
   brandid: [
     {
       type: "array",
-      required: false,
-      message: "商品品牌",
+      required: true,
+      message: "请选择商品品牌",
       trigger: "change",
     },
   ],
@@ -229,6 +231,7 @@ const rules = {
   is_exclusive: [
     {
       required: true,
+      type: "array",
       message: "请选择专属类型",
       trigger: "change",
     },
@@ -250,14 +253,14 @@ const rules = {
   moq: [
     {
       required: true,
-      validator: validate_num_0,
+      validator: validate_num,
       trigger: "blur",
     },
   ],
   customized: [
     {
       required: true,
-      validator: validate_num_0,
+      validator: validate_num,
       trigger: "blur",
     },
   ],
@@ -363,6 +366,13 @@ const rules = {
       trigger: "blur",
     },
   ],
+  good_size: [
+    {
+      required: true,
+      message: "请输入商品尺寸",
+      trigger: "blur",
+    },
+  ],
   good_thumb_img: [
     {
       required: true,

+ 104 - 69
src/views/goodStore/goodsCost/components/baseForm.vue

@@ -7,7 +7,6 @@
     :size="'mini'"
     v-loading="loading"
     label-width="110px"
-    class="demo-ruleForm"
   >
     <el-row class="ddiv">
       <el-col :span="1" class="dtitle">
@@ -45,7 +44,7 @@
               ></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="业务公司" prop="company_id">
               <search-work-company
                 :value="ruleForm.company_id"
@@ -59,7 +58,7 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="16">
+          <el-col :span="12">
             <el-form-item label="供应商" prop="supplierNo">
               <search-supplier
                 :value="ruleForm.supplierNo"
@@ -134,21 +133,15 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="专属类型" prop="is_exclusive">
-              <el-select
-                v-model="ruleForm.is_exclusive"
-                filterable
-                clearable
+              <search-exclusive
                 :disabled="type === 'view' || type === 'editCoin'"
                 style="width: 100%"
+                :isDetail="type !== 'add'"
+                :size="'mini'"
                 placeholder="专属类型"
-              >
-                <el-option
-                  v-for="group in options2"
-                  :key="group.id"
-                  :label="group.name"
-                  :value="group.id"
-                />
-              </el-select>
+                :value="ruleForm.is_exclusive"
+                @selectChange="exclusiveSearchChange"
+              />
             </el-form-item>
           </el-col>
 
@@ -194,10 +187,7 @@
           <el-col :span="24" v-show="is_noble">
             <el-row>
               <el-col :span="8">
-                <el-form-item
-                  label="贵金属重量"
-                  :prop="is_noble ? 'noble_weight' : ''"
-                >
+                <el-form-item label="贵金属重量" prop="noble_weight">
                   <digital-input
                     :values="ruleForm.noble_weight"
                     :placeholder="'贵金属重量'"
@@ -219,10 +209,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item
-                  label="贵金属种类"
-                  :prop="is_noble ? 'noble_metal' : ''"
-                >
+                <el-form-item label="贵金属种类" prop="noble_metal">
                   <search-metal-kind
                     :value="ruleForm.noble_metal"
                     :disabled="
@@ -238,10 +225,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item
-                  label="启用实时金价"
-                  :prop="is_noble ? 'is_gold_price' : ''"
-                >
+                <el-form-item label="启用实时金价" prop="is_gold_price">
                   <el-select
                     v-model="ruleForm.is_gold_price"
                     filterable
@@ -263,7 +247,7 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
+              <el-col :span="6">
                 <el-form-item label="有无工差" prop="is_diff">
                   <el-select
                     v-model="ruleForm.is_diff"
@@ -286,12 +270,11 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="配置要求" prop="config">
+              <el-col :span="10">
+                <el-form-item label="配置要求" prop="config" label-width="85px">
                   <el-select
                     v-model="ruleForm.config"
                     multiple
-                    collapse-tags
                     :disabled="type === 'view'"
                     style="width: 100%"
                     placeholder="配置要求"
@@ -307,9 +290,9 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="其他要求" prop="other_config">
+                <el-form-item label="其他配置要求" prop="other_config">
                   <el-input
-                    placeholder="其他要求"
+                    placeholder="其他配置要求"
                     maxlength="100"
                     :disabled="type === 'view'"
                     v-model="ruleForm.other_config"
@@ -367,6 +350,7 @@
                 clearable
                 style="width: 100%"
                 placeholder="是否定制"
+                @change="good_type_change"
               >
                 <el-option
                   v-for="group in options1"
@@ -378,16 +362,13 @@
             </el-form-item>
           </el-col>
           <el-col :span="8" v-show="ruleForm.good_type === '1'">
-            <el-form-item
-              label="定制起订量"
-              :prop="ruleForm.good_type === '1' ? 'moq' : ''"
-            >
+            <el-form-item label="定制起订量" prop="moq">
               <digital-input
                 :values="ruleForm.moq"
                 :placeholder="'定制起订量'"
                 :name="'ruleForm.moq'"
                 :min="0"
-                :disabled="type === 'view' || type === 'editCoin'"
+                :disabled="type === 'view' || type === 'editBase'"
                 :max="100000000000"
                 :position="'right'"
                 :precision="0"
@@ -399,16 +380,13 @@
             </el-form-item>
           </el-col>
           <el-col :span="8" v-show="ruleForm.good_type === '1'">
-            <el-form-item
-              label="定制工期"
-              :prop="ruleForm.good_type === '1' ? 'customized' : ''"
-            >
+            <el-form-item label="定制工期" prop="customized">
               <digital-input
                 :values="ruleForm.customized"
                 :placeholder="'定制工期'"
                 :name="'ruleForm.customized'"
                 :min="0"
-                :disabled="type === 'view' || type === 'editCoin'"
+                :disabled="type === 'view' || type === 'editBase'"
                 :max="100000000000"
                 :position="'right'"
                 :precision="0"
@@ -497,17 +475,7 @@
       >
       <el-col :span="23" class="dmain">
         <el-row>
-          <el-col :span="8">
-            <el-form-item label="包装清单" prop="packing_list">
-              <el-input
-                placeholder="包装清单"
-                :disabled="type === 'view' || type === 'editCoin'"
-                v-model="ruleForm.packing_list"
-                maxlength="250"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
+          <el-col :span="6">
             <el-form-item label="包装方式" prop="packing_way">
               <el-input
                 placeholder="包装方式"
@@ -517,7 +485,7 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="6">
             <el-form-item label="装箱规格" prop="packing_spec">
               <el-input
                 placeholder="装箱规格"
@@ -527,7 +495,7 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="6">
             <el-form-item label="装箱重量" prop="packing_weight">
               <digital-input
                 :values="ruleForm.packing_weight"
@@ -545,7 +513,7 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="6">
             <el-form-item label="装箱尺寸" prop="packing_size">
               <el-input
                 placeholder="装箱尺寸"
@@ -555,8 +523,17 @@
               />
             </el-form-item>
           </el-col>
-
-          <el-col :span="8">
+          <el-col :span="6">
+            <el-form-item label="商品尺寸" prop="good_size">
+              <el-input
+                placeholder="商品尺寸"
+                :disabled="type === 'view' || type === 'editCoin'"
+                v-model="ruleForm.good_size"
+                maxlength="250"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
             <el-form-item label="商品条形码" prop="good_bar">
               <el-input
                 placeholder="商品条形码"
@@ -569,6 +546,16 @@
               />
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="包装清单" prop="packing_list">
+              <el-input
+                placeholder="包装清单"
+                :disabled="type === 'view' || type === 'editCoin'"
+                v-model="ruleForm.packing_list"
+                maxlength="250"
+              />
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-col>
     </el-row>
@@ -1099,7 +1086,7 @@ export default {
   },
   data() {
     return {
-      spec_tableData:[],
+      spec_tableData: [],
       cat_id_name: "",
       brand_name: "",
       unit_name: "",
@@ -1142,6 +1129,8 @@ export default {
       this.resetFormData();
       this.rulesThis = this.rules;
       await this.resetForm();
+      this.sch_is_noble();
+      this.good_type_change();
       this.loading = false;
     },
     number_change(e, key) {
@@ -1165,6 +1154,8 @@ export default {
       this.ladder_tableData.splice(index, 1);
     },
     async submitForm() {
+      this.sch_is_noble();
+      this.good_type_change();
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
@@ -1218,6 +1209,10 @@ export default {
           model.speclist = JSON.parse(JSON.stringify(this.setResData(1)));
           model.good_ladder = JSON.parse(JSON.stringify(this.setResData(2)));
           model.config = model.config.toString();
+          model.is_exclusive =
+            model.is_exclusive.length > 0
+              ? model.is_exclusive[model.is_exclusive.length - 1]
+              : "";
           let res = {};
           delete model["id"];
           if (this.type === "add") {
@@ -1250,6 +1245,7 @@ export default {
             this.$emit("refresh", { spuCode: spuCode });
           }
         } else {
+          console.log(valid);
           console.log("error submit!!");
           return false;
         }
@@ -1390,12 +1386,12 @@ export default {
         this.ladder_tableData.push(item);
       } else {
         this.ladder_tableData.forEach((i, findex) => {
-          if (findex === parseInt(i.index)) {
-            this.spec_tableData[findex].id = id;
-            this.spec_tableData[findex].cost_fee = cost_fee;
-            this.spec_tableData[findex].delivery_fee = delivery_fee;
-            this.spec_tableData[findex].min_num = min_num;
-            this.spec_tableData[findex].spec_value_value = spec_value_value;
+          if (findex === parseInt(index + "")) {
+            this.ladder_tableData[findex].id = id;
+            this.ladder_tableData[findex].cost_fee = cost_fee;
+            this.ladder_tableData[findex].delivery_fee = delivery_fee;
+            this.ladder_tableData[findex].min_num = min_num;
+            this.ladder_tableData[findex].spec_value_value = spec_value_value;
           }
         });
       }
@@ -1435,7 +1431,7 @@ export default {
         tax: "",
         good_name: "",
         unit: [],
-        is_exclusive: "",
+        is_exclusive: [],
         noble_metal: "",
         is_gold_price: "",
         moq: "0",
@@ -1449,6 +1445,7 @@ export default {
         packing_spec: "",
         packing_weight: "",
         packing_size: "",
+        good_size: "",
         good_bar: "",
         supply_area: "",
         delivery_place: [],
@@ -1505,6 +1502,7 @@ export default {
             supplierNo, //	string	供应商
             is_auth, //string	是否有销售权限0 否1 是
             auth_img, //	string	无
+            exclusive,
             is_stock, //
             after_sales, //	string	售后说明
             craft_desc, //	string	工艺说明
@@ -1512,6 +1510,7 @@ export default {
             weight, //	string	重量
             packing_way, //	string	包装方式
             packing_size, //	string	包装尺寸
+            good_size, //商品尺寸
             packing_spec, //	string	包装规格
             packing_list, //	string	包装清单
             packing_weight, //	string	装箱重量
@@ -1562,7 +1561,14 @@ export default {
               }
             });
           }
+          let exclusiveList = [];
+          if (exclusive && exclusive.length > 0) {
+            exclusive.forEach((a, ai) => {
+              exclusiveList.push(a.id);
+            });
+          }
           this.is_noble = isok;
+          
 
           let spec_list1 =
             speclist && speclist.length > 0
@@ -1612,7 +1618,7 @@ export default {
             tax: tax ? tax + "%" : "",
             good_name: good_name || "",
             unit: good_unit ? [good_unit] : [],
-            is_exclusive: is_exclusive || "",
+            is_exclusive: exclusiveList || [],
             noble_metal: noble_metal || "",
             is_gold_price: is_gold_price || "",
             moq: moq || "0",
@@ -1626,6 +1632,7 @@ export default {
             packing_spec: packing_spec || "",
             packing_weight: packing_weight || "",
             packing_size: packing_size || "",
+            good_size: good_size || "",
             good_bar: good_bar || "",
             supply_area: supply_area || "",
             delivery_place: (delivery_place || "").split(","),
@@ -1653,10 +1660,24 @@ export default {
             config: config ? config.split(",") : [],
             other_config: other_config || "",
           };
-          // console.log(this.ruleForm.noble_metal);
         }
       });
     },
+    sch_is_noble() {
+      let list = [
+        "noble_weight",
+        "noble_metal",
+        "is_gold_price",
+        "is_diff",
+        "config",
+        "other_config",
+      ];
+      for (let i = 0; i < list.length; i++) {
+        this.rulesThis[list[i]][0].required = this.is_noble;
+        console.log(list[i] + "===" + this.rulesThis[list[i]][0].required);
+        this.$refs.ruleForm.validateField(list[i]);
+      }
+    },
     setModel(model, type) {
       let item = null;
       if (type === 1) {
@@ -1718,6 +1739,7 @@ export default {
       this.ruleForm.after_sales = cat_desc || "";
       this.$refs.ruleForm.validateField("after_sales");
       this.is_noble = pid === "6";
+      this.sch_is_noble();
     },
 
     //商品品牌选择
@@ -1756,6 +1778,11 @@ export default {
       this.ruleForm.tax = e;
       this.$refs.ruleForm.validateField("tax");
     },
+    //专属类型选择
+    exclusiveSearchChange(e) {
+      this.ruleForm.is_exclusive = e;
+      this.$refs.ruleForm.validateField("is_exclusive");
+    },
     //单位选择
     unitsearchChange(e) {
       const { id, code, label } = e;
@@ -1822,6 +1849,14 @@ export default {
         this.$message.success("图片上传成功!");
       }
     },
+    good_type_change() {
+      let list = ["moq", "customized"];
+      for (let i = 0; i < list.length; i++) {
+        this.rulesThis[list[i]][0].required = this.ruleForm.good_type === "1";
+        console.log(list[i] + "===" + this.rulesThis[list[i]][0].required);
+        this.$refs.ruleForm.validateField(list[i]);
+      }
+    },
     //图片上传失败
     UploadErrorEventgood_thumb_img(res) {
       this.imgUploadError(1, res);

+ 4 - 4
src/views/goodStore/goodsCost/components/costFormAddEdit.vue

@@ -191,10 +191,10 @@ export default {
       this.ruleForm = {
         id: id || "",
         index: this.index,
-        min_num: min_num || "",
-        cost_fee: cost_fee || "",
-        nake_fee: nake_fee || "",
-        delivery_fee: delivery_fee || "",
+        min_num: min_num || "0",
+        cost_fee: cost_fee || "0",
+        nake_fee: nake_fee || "0",
+        delivery_fee: delivery_fee || "0",
       };
     },
 

+ 5 - 15
src/views/goodStore/goodsCost/detail.vue

@@ -6,7 +6,7 @@
       v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
     >
       <el-tabs v-model="activeTabs">
-        <el-tab-pane label="新建商品" name="0" v-if="queryType === 'add'">
+        <el-tab-pane label="新建商品成本" name="0" v-if="queryType === 'add'">
           <base-form
             v-if="newTime !== ''"
             :type="queryType"
@@ -16,9 +16,9 @@
             @refresh="refresh"
           />
         </el-tab-pane>
-        <el-tab-pane label="商品详情" name="1" v-if="queryType !== 'add'">
+        <el-tab-pane label="商品成本详情" name="1" v-if="queryType !== 'add'">
           <el-collapse v-model="activeNames" style="margin: -18px 0 0 0">
-            <el-collapse-item title="商品详情" name="0">
+            <el-collapse-item title="商品成本详情" name="0">
               <base-form
                 v-if="newTime !== ''"
                 :type="queryType"
@@ -157,14 +157,7 @@ export default {
       console.log(row);
     },
     async refresh(e) {
-      const { spuCode } = e;
-
-      let model = {
-        id: this.queryType === "add" ? spuCode : this.queryId,
-        type: "view",
-      };
-      this.routeReGoto("goodsCostDetail", model);
-      await this.initForm();
+      await this.routeReGoto("goodsCost", {});
     },
     async initData() {
       this.loading = true;
@@ -191,13 +184,10 @@ export default {
 </script>
    <style lang="scss" scoped>
 .goodsCostDetail {
-  position: relative;
-  height: 100%;
   width: 100%;
   box-sizing: border-box;
   .goodsCostDetail-main {
-    overflow-y: scroll;
-    position: relative;
+    box-sizing: border-box;
     padding: 10px;
     height: 100%;
     width: 100%;

+ 97 - 79
src/views/goodStore/goodsOnline/ShowDataTableColumns.js

@@ -30,121 +30,109 @@ export default [
   {
     prop: "spuCode",
     label: "商品编号",
-    span: 8,
+    span: 6,
   },
 
 
   {
     prop: "creater",
     label: "申请人",
-    span: 8,
+    span: 6,
   },
   {
     prop: "platform_name",
     label: "上线平台",
-    span: 8,
+    span: 6,
   },
   {
     prop: "platform_code_en",
     label: "平台商品编码",
-    span: 8,
+    span: 6,
   },
   {
     prop: "online_time",
     label: "上线时间",
-    span: 8,
+    span: 6,
   },
   {
     prop: "cat",
     label: "分类",
-    span: 8,
+    span: 6,
   },
   {
     prop: "online_remark",
     label: "上线备注",
-    span: 24,
+    span: 12,
   },
   {
     prop: "brand_name",
     label: "品牌",
-    span: 8,
-  },
-  {
-    prop: "unit",
-    label: "单位",
-    span: 8,
+    span: 6,
   },
+ 
 
   {
     prop: "is_auth",
     label: "供应商权限",
     _slot_: "is_auth",
-    span: 8,
+    span: 6,
   },
   {
     prop: "exclusive",
     label: "专属类型",
-    // _slot_: "exclusive",
-    span: 8,
+    _slot_: "exclusive",
+    span: 6,
   },
   {
     prop: "weight",
     label: "商品总克重",
-    span: 8,
-  },
-  {
-    prop: "is_stock",
-    label: "是否库存品",
-    _slot_: "is_stock",
-    span: 8,
-  },
-  {
-    prop: "tax",
-    label: "税点",
-    span: 8,
-  },
-  {
-    prop: "good_type",
-    label: "是否定制",
-    _slot_: "good_type",
-    span: 8,
+    append: 'g',
+    span: 6,
   },
 
+
   {
     prop: "packing_list",
     label: "包装清单",
-    span: 8,
+    span: 6,
   },
   {
     prop: "packing_way",
     label: "包装方式",
-    span: 8,
+    span: 6,
   },
   {
     prop: "packing_spec",
     label: "装箱规格",
-    span: 8,
+    span: 6,
   },
   {
     prop: "packing_weight",
-    label: "装箱重量(g)",
-    span: 8,
+    label: "装箱重量",
+    append: 'g',
+    span: 6,
   },
   {
     prop: "packing_size",
     label: "装箱尺寸",
-    span: 8,
+    span: 6,
   },
   {
     prop: "good_bar",
     label: "商品条形码",
-    span: 8,
+    span: 6,
   },
   {
     prop: "supply_area",
     label: "供货区域",
     _slot_: "supply_area",
-    span: 8,
+    span: 6,
+  },
+  {
+    prop: "exam_status",
+    label: "状态",
+    _slot_: "exam_status",
+    span: 6,
   },
   {
     prop: "delivery_place_cn",
@@ -156,82 +144,112 @@ export default [
     label: "产地",
     span: 8,
   },
+  {
+    prop: "is_stock",
+    label: "是否库存品",
+    _slot_: "is_stock",
+    span: 4,
+  },
+  {
+    prop: "unit",
+    label: "单位",
+    span: 4,
+  },
+  {
+    prop: "tax",
+    label: "税点",
+    append: '%',
+    span: 4,
+  },
+  {
+    prop: "good_type",
+    label: "是否定制",
+    _slot_: "good_type",
+    span: 4,
+  },
   {
     prop: "delivery_day",
-    label: "物流时间(天)",
-    span: 8,
+    label: "物流时间",
+    append: '天',
+    span: 4,
   },
   {
     prop: "lead_time",
-    label: "供货周期(天)",
-    span: 8,
+    label: "供货周期",
+    append: '天',
+    span: 4
   },
   {
     prop: "sample_day",
-    label: "调样周期(天)",
-    span: 8,
+    label: "调样周期",
+    append: '天',
+    span: 4,
+  },
+  {
+    prop: "is_step",
+    label: "启用阶梯",
+    _slot_: "is_step",
+    span: 4,
   },
-
 
   {
     prop: "cert_fee",
-    label: "证书费(元)",
-    span: 8,
+    label: "证书费",
+    append: '元',
+    span: 6,
   },
   {
     prop: "packing_fee",
-    label: "包装费(元)",
-    span: 8,
+    label: "包装费",
+    append: '元',
+    span: 6,
   },
   {
     prop: "cost_fee",
-    label: "成本工艺费(元)",
-    span: 8,
+    label: "成本工艺费",
+    append: '元',
+    span: 6,
   },
 
   {
     prop: "mark_fee",
-    label: "加标费(元)",
-    span: 8,
+    label: "加标费",
+    append: '元',
+    span: 6,
   },
   {
     prop: "demo_fee",
-    label: "打样费(元)",
-    span: 8,
+    label: "打样费",
+    append: '元',
+    span: 6,
   },
   {
     prop: "open_fee",
-    label: "开模费(元)",
-    span: 8,
+    label: "开模费",
+    append: '元',
+    span: 6,
   },
 
   {
     prop: "sample_fee",
-    label: "调样费(元)",
-    span: 8,
+    label: "调样费",
+    append: '元',
+    span: 6,
   },
   {
     prop: "market_price",
-    label: "市场价(元)",
-    span: 8,
+    label: "市场价",
+    append: '元',
+    span: 6,
   },
   {
     prop: "nake_price",
-    label: "含税成本合计",
-    span: 8,
-  },
-  {
-    prop: "is_step",
-    label: "启用阶梯",
-    _slot_: "is_step",
-    span: 8,
-  },
-  {
-    prop: "exam_status",
-    label: "状态",
-    _slot_: "exam_status",
-    span: 8,
+    label: "裸价",
+    append: '元',
+    span: 6,
   },
+  
+ 
   {
     prop: "updatetime",
     label: "更新时间",

+ 10 - 22
src/views/goodStore/goodsOnline/columns.js

@@ -36,7 +36,7 @@ const options7 = [
   { id: "1", name: "是" },
 ]
 const options8 = [
-  { id: "0", name: "待提交" },
+  // { id: "0", name: "待提交" },
   { id: "1", name: "待完善成本" },
   { id: "2", name: "待产品审核" },
   { id: "3", name: "待财务定价" },
@@ -71,7 +71,7 @@ const listCol = [
   {
     prop: "platform_name",
     label: "平台名称",
-    width: "118px",
+    width: "100px",
   },
 
   {
@@ -91,37 +91,25 @@ const listCol = [
     _slot_: "good_type",
     width: "70px",
   },
-  // {
-  //   prop: "good_type",
-  //   label: "库存类型",
-  //   _slot_: "good_type",
-  //   width: "70px",
-  // },
-
   {
     prop: "brand_name",
     label: "品牌",
   },
-
-  // {
-  //   prop: "supplierNo",
-  //   label: "供应商编号",
-  //   width: "110px",
-  // },
-  // {
-  //   prop: "supplier_name",
-  //   label: "供应商名称",
-  //   width: "110px",
-  // },
   {
     prop: "companyNo",
     label: "业务公司编号",
-    width: "110px",
+    width: "160px",
   },
   {
     prop: "company",
     label: "业务公司名称",
-    width: "110px",
+    width: "150px",
+  },
+
+  {
+    prop: "plat_code",
+    label: "平台商品编号",
+    width: "150px",
   },
 
   {

+ 2 - 5
src/views/goodStore/goodsOnline/components/fixed-price-form.vue

@@ -335,7 +335,7 @@ export default {
     },
 
     openCostEditDelete(index) {
-      this.ladder_tableData.splice(index, 1);
+     this.ruleForm.good_ladder.splice(index, 1);
     },
     //阶梯成本修改
     costrefreshEdit(e) {
@@ -355,7 +355,7 @@ export default {
         this.ruleForm.good_ladder.push(item);
       } else {
         this.ruleForm.good_ladder.forEach((i, findex) => {
-          if (i.id === id && findex === parseInt(i.index)) {
+          if (findex === parseInt(index+"")) {
             this.ruleForm.good_ladder[findex].id = id;
             this.ruleForm.good_ladder[findex].sale_price = sale_price;
             this.ruleForm.good_ladder[findex].market_price = market_price;
@@ -365,9 +365,6 @@ export default {
             this.ruleForm.good_ladder[findex].id_del = is_del;
           }
         });
-        // this.ladder_tableData = this.ladder_tableData.sort(
-        //   this.dataSort("min_num")
-        // );
       }
       this.showModel = false;
     },

+ 1 - 1
src/views/goodStore/goodsOnline/components/online-exam-form.vue

@@ -31,7 +31,7 @@
           <el-date-picker
             v-model="ruleForm.online_time"
             type="datetime"
-            value-format="yyyy-MM-dd hh:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss"
             style="width: 100%"
             :picker-options="pickerOptions"
             placeholder="上线时间"

+ 8 - 7
src/views/goodStore/goodsOnline/detail.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="goodsOnlineDetail">
-    {{ status }}-{{ powers }}
+    <!-- {{ status }}-{{ powers }} -->
     <div
       class="goodsOnlineDetail-main"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
@@ -85,6 +85,12 @@
                     }}天</span
                   >
                 </template>
+                <template slot="exclusive">
+                  <span v-for="(si, sii) in sitem.exclusive" :key="si.id">
+                    <span v-if="sii !== 0">/</span> <span>{{ si.name }}</span>
+                  </span>
+                </template>
+
                 <template slot="supply_area">
                   <el-tag
                     :size="'mini'"
@@ -387,7 +393,7 @@ export default {
         this.spuCode = spuCode;
         this.ladderlist = JSON.parse(JSON.stringify(ladderlist));
         this.nakelist = JSON.parse(JSON.stringify(nakelist));
-        console.log(this.ladderlist)
+        console.log(this.ladderlist);
         let cat = "";
         if (cat_info && cat_info.length > 0) {
           cat_info.forEach((e, i) => {
@@ -412,15 +418,10 @@ export default {
 </script>
    <style lang="scss" scoped>
 .goodsOnlineDetail {
-  position: relative;
-  height: 100%;
   width: 100%;
   box-sizing: border-box;
   .goodsOnlineDetail-main {
-    overflow-y: scroll;
-    position: relative;
     padding: 10px;
-    height: 100%;
     width: 100%;
   }
   .goodsOnlineDetail-title {

+ 38 - 36
src/views/goodStore/goodsOnline/index.vue

@@ -24,7 +24,29 @@
       <template #table-header="{}">
         <div style="width: 100%">
           <el-row style="padding: 0 0 10px 80px">
-            <el-col :span="6" style="width: 303px">
+             <el-col :span="4" style="width: 120px;">
+              <el-select
+                v-model="parmValue.good_type"
+                filterable
+                clearable
+                :size="searchSize"
+                placeholder="是否定制"
+                style="width: 100%"
+                @change="
+                  pageInfo.curr = 1;
+                  parmValue.page = 1;
+                  searchList();
+                "
+              >
+                <el-option
+                  v-for="item in options1"
+                  :key="'good_type' + item.id"
+                  :label="item.name"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-col>
+            <el-col :span="6" style="width: 303px;padding:0 0 0 10px">
               <period-date-picker
                 :type="1"
                 :width="'135px'"
@@ -34,17 +56,7 @@
                 @timeReturned="handleTime"
               />
             </el-col>
-            <el-col :span="4" style="width: 130px">
-              <search-brand
-                :value="brandid"
-                :disabled="type === 'view' || type === 'editCoin'"
-                :size="'mini'"
-                :isDetail="type !== 'add'"
-                :names="brand_name"
-                :placeholder="'商品品牌'"
-                @searchChange="brandidsearchChange"
-              />
-            </el-col>
+           
             <el-col :span="6" style="width: 310px; padding: 0 0 0 10px">
               <good-class
                 :value="parmValue.cat_id"
@@ -77,7 +89,7 @@
           </el-row>
 
           <el-row>
-            <el-col :span="4" style="width: 215px">
+            <el-col :span="4" style="width: 200px">
               <el-select
                 v-model="parmValue.status"
                 filterable
@@ -99,29 +111,19 @@
                 />
               </el-select>
             </el-col>
-            <el-col :span="4" style="width: 158px; padding: 0 0 0 10px">
-              <el-select
-                v-model="parmValue.good_type"
-                filterable
-                clearable
-                :size="searchSize"
-                placeholder="是否定制"
-                style="width: 100%"
-                @change="
-                  pageInfo.curr = 1;
-                  parmValue.page = 1;
-                  searchList();
-                "
-              >
-                <el-option
-                  v-for="item in options1"
-                  :key="'good_type' + item.id"
-                  :label="item.name"
-                  :value="item.id"
-                />
-              </el-select>
+            <el-col :span="4" style="width: 240px;padding:0 0 0 10px">
+              <search-brand
+                :value="brandid"
+                :disabled="type === 'view' || type === 'editCoin'"
+                :size="'mini'"
+                :isDetail="type !== 'add'"
+                :names="brand_name"
+                :placeholder="'商品品牌'"
+                @searchChange="brandidsearchChange"
+              />
             </el-col>
-            <el-col :span="4" style="width: 513px; padding: 0 0 0 10px">
+
+            <el-col :span="4" style="width: 470px; padding: 0 0 0 10px">
               <el-input
                 :size="searchSize"
                 v-model="sinput"
@@ -183,7 +185,7 @@
       <template #status="{ scope }">
         <el-tag
           :size="tablebtnSize"
-          :type="scope.row.status == '0' ? '' : 'warning'"
+          :type="scope.row.status == '6' ? '' : scope.row.status == '7' ?'danger':'warning'"
           v-text="
             (options8.find((item) => item.id == scope.row.status) || {}).name ||
             '--'

+ 3 - 3
src/views/purchaseIn/workbench/components/baseForm.vue

@@ -14,16 +14,16 @@
         :span="24"
         style="padding: 12px 16px 12px 16px; text-align: right"
       >
-        <span
+        <!-- <span
           >成本合计:<span>{{ back_total }}</span></span
-        >
+        > -->
         <span
           class="fl"
           style="height: 28px; font-size: 16px; line-height: 28px"
           >{{ title }}</span
         >
         <el-button :size="'mini'" @click="$emit('cancel')">取 消 </el-button>
-        <el-button :size="'mini'" type="primary" @click="submitForm"
+        <el-button :size="'mini'" type="primary"  v-if="type !== 'view'" @click="submitForm"
           >保 存
         </el-button>
       </el-col>

+ 221 - 211
src/views/purchaseIn/workbench/detail.vue

@@ -4,225 +4,236 @@
       class="page-main clear"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
     >
-      <div class="left">
-        <div class="left-main">
-          <div class="left-card" v-if="sitem">
-            <div class="page-main-title">招标任务信息</div>
-            <ul class="page-main-ul clear">
-              <li>任务单号:</li>
-              <li>{{ queryId }}</li>
-              <li>截止时间:</li>
-              <li>{{ sitem.endtime }}</li>
-              <li>剩余时间:</li>
-              <li>2020-09-20 17:00:00</li>
-              <li>购买数量:</li>
-              <li>{{ sitem.num }}{{ sitem.unit_name }}</li>
-              <li>预算单价:</li>
-              <li>{{ sitem.budget_price }}元</li>
-              <li>到货时间:</li>
-              <li>{{ sitem.arrival_time }}</li>
-            </ul>
-          </div>
-          <div class="left-card" v-if="sitem">
-            <div class="page-main-title">商品要求</div>
-            <ul class="page-main-ul clear">
-              <li>商品名称:</li>
-              <li>{{ sitem.good_name }}</li>
-              <li v-if="sitem.good_img">商品图片:</li>
-              <li v-if="sitem.good_img">
-                <img
-                  v-viewer
-                  :src="sitem.good_img"
-                  class="hover"
-                  style="width: 20px; height: 20px; display: inline-block"
-                />
-              </li>
-              <li>商品分类:</li>
-              <li>{{ sitem.can_name }}</li>
-              <li>商品品牌:</li>
-              <li>{{ sitem.brand ? sitem.brand : "无要求" }}</li>
-              <li>商品规格:</li>
-              <li>
-                <el-table
-                  :data="sitem.specinfo"
-                  border
-                  stripe
-                  :size="'mini'"
-                  style="width: 100%"
-                >
-                  <el-table-column
-                    prop="spec_name"
-                    label="类型:值"
-                    show-overflow-tooltip
-                  >
-                    <template slot-scope="scope">
-                      {{ scope.row.spec_name }}:{{ scope.row.spec_value_name }}
-                    </template></el-table-column
+      <div v-if="status !== '1'">
+        <search-not :placeholder="'招标任务已结束!'" />
+      </div>
+      <div v-else>
+        <div class="left">
+          <div class="left-main">
+            <div class="left-card" v-if="sitem">
+              <div class="page-main-title">招标任务信息</div>
+              <ul class="page-main-ul clear">
+                <li>任务单号:</li>
+                <li>{{ queryId }}</li>
+                <li>截止时间:</li>
+                <li>{{ sitem.endtime }}</li>
+                <!-- <li>剩余时间:</li>
+                <li>2020-09-20 17:00:00</li> -->
+                <li>购买数量:</li>
+                <li>{{ sitem.num }}{{ sitem.unit_name }}</li>
+                <li>预算单价:</li>
+                <li>{{ sitem.budget_price }}元</li>
+                <li>到货时间:</li>
+                <li>{{ sitem.arrival_time }}</li>
+              </ul>
+            </div>
+            <div class="left-card" v-if="sitem">
+              <div class="page-main-title">商品要求</div>
+              <ul class="page-main-ul clear">
+                <li>商品名称:</li>
+                <li>{{ sitem.good_name }}</li>
+                <li v-if="sitem.good_img">商品图片:</li>
+                <li v-if="sitem.good_img">
+                  <img
+                    v-viewer
+                    :src="sitem.good_img"
+                    class="hover"
+                    style="width: 20px; height: 20px; display: inline-block"
+                  />
+                </li>
+                <li>商品分类:</li>
+                <li>{{ sitem.can_name }}</li>
+                <li>商品品牌:</li>
+                <li>{{ sitem.brand ? sitem.brand : "无要求" }}</li>
+                <li>商品规格:</li>
+                <li>
+                  <el-table
+                    :data="sitem.specinfo"
+                    border
+                    stripe
+                    :size="'mini'"
+                    style="width: 100%"
                   >
-                </el-table>
-              </li>
-              <li>总重量:</li>
-              <li>{{ sitem.total_weight }}g</li>
-              <li>是否多地:</li>
-              <li>{{ sitem.is_addrs === "1" ? "多地" : "一地" }}</li>
-              <li>是否定制:</li>
-              <li>{{ sitem.is_custom === "1" ? "定制" : "非定制" }}</li>
+                    <el-table-column
+                      prop="spec_name"
+                      label="类型:值"
+                      show-overflow-tooltip
+                    >
+                      <template slot-scope="scope">
+                        {{ scope.row.spec_name }}:{{
+                          scope.row.spec_value_name
+                        }}
+                      </template></el-table-column
+                    >
+                  </el-table>
+                </li>
+                <li>总重量:</li>
+                <li>{{ sitem.total_weight }}g</li>
+                <li>是否多地:</li>
+                <li>{{ sitem.is_addrs === "1" ? "多地" : "一地" }}</li>
+                <li>是否定制:</li>
+                <li>{{ sitem.is_custom === "1" ? "定制" : "非定制" }}</li>
 
-              <li v-if="sitem.is_metal">启用金价:</li>
-              <li v-if="sitem.is_metal">
-                {{ sitem.is_gold_price === "1" ? "启用" : "不启用" }}
-              </li>
-              <li v-if="sitem.is_metal">配置要求:</li>
-              <li v-if="sitem.is_metal">{{ sitem.config }}</li>
+                <li v-if="sitem.is_metal">启用金价:</li>
+                <li v-if="sitem.is_metal">
+                  {{ sitem.is_gold_price === "1" ? "启用" : "不启用" }}
+                </li>
+                <li v-if="sitem.is_metal">配置要求:</li>
+                <li v-if="sitem.is_metal">{{ sitem.config }}</li>
 
-              <li v-if="sitem.is_metal">金属克重:</li>
-              <li v-if="sitem.is_metal">{{ sitem.specs_weight }}g</li>
-              <li v-if="sitem.is_metal">其他要求:</li>
-              <li v-if="sitem.is_metal">
-                {{ sitem.other_config }}
-              </li>
-              <li v-if="sitem.is_metal">金属种类:</li>
-              <li v-if="sitem.is_metal">
-                {{ sitem.metal_name }}
-              </li>
+                <li v-if="sitem.is_metal">金属克重:</li>
+                <li v-if="sitem.is_metal">{{ sitem.specs_weight }}g</li>
+                <li v-if="sitem.is_metal">其他要求:</li>
+                <li v-if="sitem.is_metal">
+                  {{ sitem.other_config }}
+                </li>
+                <li v-if="sitem.is_metal">金属种类:</li>
+                <li v-if="sitem.is_metal">
+                  {{ sitem.metal_name }}
+                </li>
 
-              <li>工艺说明:</li>
-              <li>{{ sitem.cost_desc }}</li>
-              <li>产品用途:</li>
-              <li>{{ sitem.use_desc }}</li>
-              <li>商品备注:</li>
-              <li>{{ sitem.remark }}</li>
-            </ul>
+                <li>工艺说明:</li>
+                <li>{{ sitem.cost_desc }}</li>
+                <li>产品用途:</li>
+                <li>{{ sitem.use_desc }}</li>
+                <li>商品备注:</li>
+                <li>{{ sitem.remark }}</li>
+              </ul>
+            </div>
           </div>
         </div>
-      </div>
-      <div class="p-right">
-        <div
-          v-if="editType == '' || editType == 'wait'"
-          class="right-mian-wait"
-        >
-          <div class="title">采返工作台</div>
-          <div class="main">暂无工作数据!</div>
-        </div>
-        <template v-else>
-          <base-form
-            :id="queryId"
-            :editId="editId"
-            :type="editType"
-            :askItem="sitem"
-            :sitem="baseSitem"
-            :newTime="newTime"
-            @refresh="(editType = 'wait'), searchList()"
-            @cancel="editType = 'wait'"
-            v-if="newTime !== ''"
-          />
-        </template>
-      </div>
-      <div class="bottom">
-        <el-table
-          :data="tableData"
-          border
-          stripe
-          :size="'mini'"
-          style="width: 100%"
-        >
-          <el-table-column
-            prop="good_img"
-            label="图片"
-            width="48"
-            show-overflow-tooltip
-          >
-            <template slot-scope="scope">
-              <div
-                v-if="scope.row.good_img"
-                style="width: 20px; height: 20px"
-                class="hover"
-                v-viewer
-              >
-                <img
-                  :src="scope.row.good_img"
-                  style="display: inline-block; width: 100%; height: 100%"
-                  alt=""
-                />
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="good_name"
-            label="商品名称"
-            min-width="120"
-            show-overflow-tooltip
-          />
-          <el-table-column
-            prop="sale_price"
-            label="成本合计"
-            width="110"
-            show-overflow-tooltip
-          />
-          <el-table-column
-            prop="specinfo"
-            label="规格"
-            width="100"
-            show-overflow-tooltip
+        <div class="p-right">
+          <div
+            v-if="editType == '' || editType == 'wait'"
+            class="right-mian-wait"
           >
-            <template slot-scope="scope">
-              <span v-for="(item, ii) in scope.row.specinfo" :key="item + ii"
-                ><span v-if="ii !== 0">--</span>{{ item.spec_name }}[{{
-                  item.spec_value_name
-                }}]</span
-              >
-            </template></el-table-column
+            <div class="title">采返工作台</div>
+            <div class="main">暂无工作数据!</div>
+          </div>
+          <template v-else>
+            <base-form
+              :id="queryId"
+              :editId="editId"
+              :type="editType"
+              :askItem="sitem"
+              :sitem="baseSitem"
+              :newTime="newTime"
+              @refresh="(editType = 'wait'), searchList()"
+              @cancel="editType = 'wait'"
+              v-if="newTime !== ''"
+            />
+          </template>
+        </div>
+        <div class="bottom">
+          <el-table
+            :data="tableData"
+            border
+            stripe
+            :size="'mini'"
+            style="width: 100%"
           >
+            <el-table-column
+              prop="good_img"
+              label="图片"
+              width="48"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <div
+                  v-if="scope.row.good_img"
+                  style="width: 20px; height: 20px"
+                  class="hover"
+                  v-viewer
+                >
+                  <img
+                    :src="scope.row.good_img"
+                    style="display: inline-block; width: 100%; height: 100%"
+                    alt=""
+                  />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="good_name"
+              label="商品名称"
+              min-width="120"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="sale_price"
+              label="成本合计"
+              width="110"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="specinfo"
+              label="规格"
+              width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <span v-for="(item, ii) in scope.row.specinfo" :key="item + ii"
+                  ><span v-if="ii !== 0">--</span>{{ item.spec_name }}[{{
+                    item.spec_value_name
+                  }}]</span
+                >
+              </template></el-table-column
+            >
 
-          <el-table-column
-            prop="unit"
-            label="单位"
-            width="45"
-            show-overflow-tooltip
-          />
-          <el-table-column
-            prop="brand_name"
-            label="品牌"
-            width="80"
-            show-overflow-tooltip
-          />
+            <el-table-column
+              prop="unit"
+              label="单位"
+              width="45"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="brand_name"
+              label="品牌"
+              width="80"
+              show-overflow-tooltip
+            />
 
-          <el-table-column
-            prop="supplierName"
-            label="供应商"
-            show-overflow-tooltip
-          />
-          <el-table-column fixed="right" label="操作" width="80">
-            <template slot="header" slot-scope="scope">
-              <span>操作</span>
-              <el-tooltip effect="dark" content="添加反馈商品" placement="top">
-                <i
-                  class="el-icon-circle-plus-outline tb-icon fr"
-                  @click="openModal('add', 'add')"
-                ></i>
-              </el-tooltip>
-            </template>
-            <template slot-scope="scope">
-              <el-tooltip
-                v-if="powers.some((item) => item == '007')"
-                effect="dark"
-                content="详情"
-                placement="top"
-              >
-                <i
-                  class="el-icon-view tb-icon"
-                  @click="openModal(scope.row.bidNo, 'view')"
-                ></i>
-              </el-tooltip>
-              <el-tooltip effect="dark" content="修改" placement="top">
-                <i
-                  class="el-icon-edit tb-icon"
-                  @click="openModal(scope.row.bidNo, 'edit')"
-                ></i>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
+            <el-table-column
+              prop="supplierName"
+              label="供应商"
+              show-overflow-tooltip
+            />
+            <el-table-column fixed="right" label="操作" width="80">
+              <template slot="header" slot-scope="scope">
+                <span>操作</span>
+                <el-tooltip
+                  effect="dark"
+                  content="添加反馈商品"
+                  placement="top"
+                >
+                  <i
+                    class="el-icon-circle-plus-outline tb-icon fr"
+                    @click="openModal('add', 'add')"
+                  ></i>
+                </el-tooltip>
+              </template>
+              <template slot-scope="scope">
+                <el-tooltip
+                  v-if="powers.some((item) => item == '007')"
+                  effect="dark"
+                  content="详情"
+                  placement="top"
+                >
+                  <i
+                    class="el-icon-view tb-icon"
+                    @click="openModal(scope.row.bidNo, 'view')"
+                  ></i>
+                </el-tooltip>
+                <el-tooltip effect="dark" content="修改" placement="top">
+                  <i
+                    class="el-icon-edit tb-icon"
+                    @click="openModal(scope.row.bidNo, 'edit')"
+                  ></i>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
       </div>
     </div>
     <div v-else>
@@ -265,6 +276,7 @@ export default {
       isDetail: false,
       modelId: 0,
       queryId: "",
+      status: "",
       sitem: {},
       newTime: "",
       editId: "add",
@@ -303,7 +315,6 @@ export default {
         infoNo: this.queryId,
       });
       this.loading = false;
-      console.log(data);
       if (code === 0) {
         this.sitem = JSON.parse(JSON.stringify(data));
         const { status, can } = this.sitem;
@@ -326,7 +337,6 @@ export default {
           this.sitem.can_id_arr = [];
           this.sitem.can_name = "";
         }
-        // console.log(this.sitem.can_id_arr);
         this.status = status;
         this.getNewTime();
       } else if (code >= 100 && code <= 104) {

+ 129 - 39
src/views/purchaseIn/workbench/index.vue

@@ -5,30 +5,70 @@
       v-loading="loading"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-      <ul class="clear">
-        <li>
+      <ul class="clear po-ul">
+        <li class="po-li">
           <div class="taskTitle color1">咨询单任务</div>
           <div class="taskList clear">
             <div
-              class="aaa"
+              class="task-item"
               v-for="item in list"
               :key="item"
-              @click="routeGoto('workbenchDetail', { id: 'INF2203151428199103' })"
+              @click="routeGoto('workbenchDetail', { id: item.infoNo })"
             >
-              {{ item }}
+              <ul class="fl item-ul">
+                <li class="fl item-li">
+                  <span class="label">任务编号:</span>
+                  <span class="label-main">{{ item.infoNo }}</span>
+                </li>
+                <li class="fl item-li">
+                  <span class="label">截止时间:</span>
+                  <span class="label-main">{{ item.endtime }}</span>
+                </li>
+                <li class="fl item-li">
+                  <span class="label">商品分类:</span>
+                  <span class="label-main">{{ item.cat_name }}</span>
+                </li>
+                <li class="fl item-li">
+                  <span class="label">商品品牌:</span>
+                  <span class="label-main">{{ item.brand_name }}</span>
+                </li>
+                <li class="fl item-li">
+                  <span class="label">商品名称:</span>
+                  <span class="label-main">
+                    <img
+                      @click="imgclick"
+                      v-if="item.good_img"
+                      class="hover"
+                      v-viewer
+                      style="width: 20px; height: 20px"
+                      :src="item.good_img"
+                      alt=""
+                    />
+                    {{ item.good_name }}</span
+                  >
+                </li>
+                <li class="fl item-li">
+                  <span class="label">商品预算:</span>
+                  <span class="label-main">
+                    {{ item.budget_price }}元/{{ item.num }}{{ unit }}</span
+                  >
+                </li>
+              </ul>
             </div>
             <div class="no-data">暂无数据!</div>
           </div>
         </li>
 
-        <li>
+        <li class="po-li">
           <div class="taskTitle color2">客户指定商品任务</div>
           <div class="taskList">
             <div
-              class="aaa"
-              v-for="item in list"
+              class="task-item"
+              v-for="item in list1"
               :key="item"
-              @click="routeGoto('workbenchDetail', { id: 'INF2203151428199103' })"
+              @click="
+                routeGoto('workbenchDetail', { id: 'INF2203151428199103' })
+              "
             >
               {{ item }}
             </div>
@@ -81,18 +121,12 @@ export default {
       showModel: false,
       modelId: "000",
       sitem: {},
-      list: [
-        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-        39, 40,
-      ],
+      list1: [],
+      list: [],
       parmValue: {
         page: 1, // 页码
-        size: 15, // 每页显示条数
-        starttime: "",
-        endtime: "",
-        status: "",
-        creater: "",
+        size: 1000, // 每页显示条数
+        status: "1",
       },
       // 状态
       statusOptions: [
@@ -149,23 +183,20 @@ export default {
     };
   },
   mounted() {
-    // this.searchList();
+    this.searchList();
   },
   methods: {
     restSearch() {
       // 表格 - 分页
       this.pageInfo = {
-        size: 15,
+        size: 1000,
         curr: 1,
         total: 0,
       };
       this.parmValue = {
         page: 1, // 页码
         size: 15, // 每页显示条数
-        starttime: "",
-        endtime: "",
-        status: "",
-        creater: "",
+        status: "1",
       };
       this.searchList();
     },
@@ -251,17 +282,34 @@ export default {
           console.log("取消");
         });
     },
+    imgclick(e) {
+      e.stopPropagation();
+      e.preventDefault();
+    },
     // 刷新表格
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.list1(this.parmValue);
-      if (res && res.code === 0 && res.data) {
-        this.tableData = res.data.list;
-        this.pageInfo.total = Number(res.data.count);
-      } else if (res && res.code >= 100 && res.code <= 104) {
+      const { code, data } = await asyncRequest.list(this.parmValue);
+      if (code === 0) {
+        const { list, count } = data;
+        this.list = list;
+        this.list.map((e) => {
+          e.cat_name = "";
+          if (e.can && e.can.length > 0) {
+            e.can.forEach((a, ai) => {
+              e.cat_name += `${ai !== 0 ? "_" : ""}${a.name}`;
+            });
+          }
+          return e;
+        });
+        if (this.list.length > 0) {
+          console.log(this.list[0]);
+        }
+        this.pageInfo.total = Number(count);
+      } else if (code >= 100 && code <= 104) {
         await this.logout();
       } else {
-        this.tableData = [];
+        this.list = [];
         this.pageInfo.total = 0;
       }
       this.loading = false;
@@ -284,12 +332,12 @@ export default {
     width: 100%;
     height: 100%;
     box-sizing: border-box;
-    ul {
+    ul.po-ul {
       width: 100%;
       height: 100%;
       overflow-y: hidden;
       box-sizing: border-box;
-      li {
+      li.po-li {
         position: relative;
         height: 100%;
         width: 100%;
@@ -297,13 +345,52 @@ export default {
         overflow: hidden;
         box-sizing: border-box;
         // border: 1px solid rgba(121, 121, 121, 1);
-        .aaa {
+        .task-item {
           border-bottom: 1px dashed #e6ebf5;
-          height: 140px;
-          line-height: 140px;
+          line-height: 20px;
+          overflow: hidden;
           float: left;
           width: 100%;
+          padding: 10px 12px;
           text-align: center;
+          font-size: 12px;
+          ul.item-ul {
+            width: 100%;
+            padding: 0;
+            margin: 0;
+
+            li.item-li {
+              width: 100%;
+              padding: 0;
+              margin: 0;
+              .label,
+              .label-main {
+                height: 20px;
+                line-height: 20px;
+                overflow: hidden;
+              }
+              .label {
+                width: 60px;
+                float: left;
+                color: #909499;
+                text-align: left;
+              }
+              .label-main {
+                float: left;
+                width: calc(100% - 60px);
+                text-align: right;
+                color: #454545;
+                img {
+                  display: inline-block;
+                  vertical-align: top;
+                  margin: 0 2px 0 0;
+                }
+              }
+            }
+          }
+          .order {
+            width: 100%;
+          }
           // &:last-child{
           //   border: 0;
           // }
@@ -312,9 +399,12 @@ export default {
           float: left;
           width: 66%;
           margin: 0 2% 0 0;
-          .aaa {
-            width: 50%;
-            &:nth-child(2n + 1) {
+          .task-item {
+            width: 33.33%;
+            &:nth-child(3n + 1) {
+              border-right: 1px dashed #e6ebf5;
+            }
+            &:nth-child(3n + 2) {
               border-right: 1px dashed #e6ebf5;
             }
           }

+ 0 - 80
src/views/sellOut/bargainList/ShowDataTableColumns.js

@@ -1,80 +0,0 @@
-export default [
-  {
-    prop: "returnCode",
-    label: "售后申请单号",
-  },
-  {
-    prop: "status",
-    label: "售后申请单状态",
-    _slot_: "status",
-  },
-  {
-    prop: "outCode",
-    label: "出库单编号"
-  },
-
-  // {
-  //   prop: "order_type",
-  //   label: "订单类别",
-  //   _slot_: "order_type",
-  // },
-
-  {
-    prop: "orderCode",
-    label: "销售订单编号",
-  },
-  {
-    prop: "apply_name",
-    label: "申请人"
-  },
-  {
-    prop: "class_cat",
-    label: "商品分类",
-  },
-
-  {
-    prop: "good_code",
-    label: "商品编码",
-  },
-
-  {
-    prop: "good_name",
-    label: "商品名称",
-  },
-
- 
-  {
-    prop: "total_num",
-    label: "总发货数量",
-  },
-
-  {
-    prop: "sale_price",
-    label: "销售单价",
-  },
-  // {
-  //   prop: "origin_price",
-  //   label: "采购单价",
-  // },
-
-  // {
-  //   prop: "sale_price",
-  //   label: "商品单价",
-  // },
-  {
-    prop: "total_price",
-    label: "出库单总价",
-  },
-
-  {
-    prop: "updatetime",
-    label: "更新时间",
-  },
-  {
-    prop: "addtime",
-    label: "创建时间",
-  },
-
-
-]
-

+ 1 - 5
src/views/sellOut/bargainList/index.vue

@@ -208,11 +208,7 @@ export default {
         { id: "6", label: "财务主管驳回" },
         { id: "7", label: "已取消议价" },
       ],
-      post_ownOptions: [
-        { id: "1", label: "客户承担" },
-        { id: "2", label: "公司承担" },
-        { id: "3", label: "供应商承担" },
-      ],
+   
       sitem: null,
     
       loading: true,

+ 0 - 32
src/views/sellOut/bargainList/options.js

@@ -1,32 +0,0 @@
-export default {
-    serviceOption: [//假数据
-        {
-          value: "选项1",
-          label: "待业务审核",
-        },
-        {
-          value: "选项2",
-          label: "待供应商反馈",
-        },
-        {
-          value: "选项3",
-          label: "待采购反馈",
-        },
-        {
-          value: "选项4",
-          label: "待采购审核",
-        },
-        {
-          value: "选项5",
-          label: "处理已结束",
-        },
-        {
-          value: "d",
-          label: "业务已驳回",
-        },
-        {
-          value: "d",
-          label: "采购已驳回",
-        },
-      ],
-}

+ 19 - 0
src/views/sellOut/project/components/backGoodShow.vue

@@ -57,6 +57,12 @@
         <el-tooltip
           effect="dark"
           class="fr"
+          v-if="
+            powers &&
+            powers.length > 0 &&
+            powers.some((item) => item == '062') &&
+            (status === '1' || status === '2')
+          "
           content="添加线上商品"
           style="margin: 16px 10px 0 0"
           placement="top"
@@ -148,6 +154,19 @@ export default {
   components: {
     searchGoodOnlineTableModal,
   },
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "projectDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
   watch: {
     // showModel: function (val) {
     //   this.showModelThis = val;

+ 31 - 3
src/views/sellOut/project/components/grossForm.vue

@@ -18,14 +18,28 @@
             :position="'right'"
             :precision="2"
             :size="'mini'"
-            :disabled="false"
+            :disabled="
+              (status === '5' || status === '6') &&
+              powers &&
+              powers.length > 0 &&
+              powers.some((item) => item == '060')
+            "
             :controls="false"
             :append="'%'"
             @reschange="rate_change"
           />
         </el-form-item>
       </el-col>
-      <el-col :span="12" style="text-align: right">
+      <el-col
+        :span="12"
+        style="text-align: right"
+        v-if="
+          (status !== '5' || status !== '6') &&
+          powers &&
+          powers.length > 0 &&
+          powers.some((item) => item == '060')
+        "
+      >
         <el-button type="primary" :size="'mini'" @click="submitForm"
           >保 存
         </el-button>
@@ -41,6 +55,19 @@ export default {
   name: "Account",
   props: ["showModel", "sitem", "id", "type"],
   mixins: [resToken],
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "projectDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
   watch: {
     // showModel: function (val) {
     //   this.showModelThis = val;
@@ -116,7 +143,8 @@ export default {
         if (this.$refs.ruleForm) {
           this.$refs.ruleForm.resetFields();
           this.$refs.ruleForm.clearValidate();
-          const { rate, projectNo } = this.sitem;
+          const { rate, projectNo, status } = this.sitem;
+          this.status = status || "";
           this.ruleForm = {
             projectNo: projectNo || "",
             rate: rate || "0",

+ 664 - 0
src/views/sellOut/project/components/setPlan copy.vue

@@ -0,0 +1,664 @@
+<template>
+  <div class="project-setPlan" v-loading="loading">
+    <div class="project-setPlan-main">
+      <div class="project-setPlan-title">商品要求</div>
+      <div class="project-setPlan-ask-table">
+        <template v-if="ladder">
+          <el-table
+            :data="ladder"
+            :size="'mini'"
+            border
+            stripe
+            style="width: 100%"
+          >
+            <el-table-column label="要求编码" prop="pgNo" width="180px" />
+
+            <el-table-column prop="good_type" label="商品类型" width="80px">
+              <template slot-scope="scope">
+                <el-tag
+                  :size="'mini'"
+                  v-text="
+                    (
+                      statusOptions.find(
+                        (item) => item.value == scope.row.good_type
+                      ) || {}
+                    ).label || '--'
+                  "
+                ></el-tag
+              ></template>
+            </el-table-column>
+            <el-table-column prop="budget_price" label="预算单价" width="110" />
+            <el-table-column prop="num" label="购买数量" width="110" />
+            <el-table-column prop="cat_name" label="商品分类" />
+            <el-table-column prop="good_img" label="图片" width="50">
+              <template slot-scope="scope">
+                <div
+                  v-if="scope.row.good_img"
+                  style="width: 20px; height: 20px"
+                  class="hover"
+                  v-viewer
+                >
+                  <img
+                    :src="scope.row.good_img"
+                    style="display: inline-block; width: 100%; height: 100%"
+                    alt=""
+                  />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column prop="good_name" label="商品名称" />
+          </el-table>
+        </template>
+      </div>
+      <div class="project-setPlan-title">客户意向商品</div>
+      <div class="project-setPlan-backGood-table">
+        <el-table
+          :data="tableData"
+          :size="'mini'"
+          border
+          stripe
+          ref="multipleTable"
+          style="width: 100%"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column
+            type="selection"
+            width="40"
+            v-if="table_type === 'add'"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="pgNo"
+            label="要求编码"
+            width="180px"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="sale_price"
+            label="销售单价"
+            width="110"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="num"
+            label="购买数量"
+            width="110"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="good_img"
+            label="图片"
+            width="50"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <div
+                v-if="scope.row.good_img"
+                style="width: 20px; height: 20px"
+                class="hover"
+                v-viewer
+              >
+                <img
+                  :src="scope.row.good_img"
+                  style="display: inline-block; width: 100%; height: 100%"
+                  alt=""
+                />
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="good_name"
+            label="商品名称"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="class_cat"
+            label="商品分类"
+            show-overflow-tooltip
+          />
+          <el-table-column prop="model" label="规格" show-overflow-tooltip />
+          <el-table-column
+            prop="expiry_day"
+            label="信息有效期"
+            width="85"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="work_day"
+            label="制作工期"
+            width="85"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="delivery_day"
+            label="物流时间"
+            width="85"
+            show-overflow-tooltip
+          />
+        </el-table>
+      </div>
+      <div class="project-setPlan-title">
+        方案制定
+        <span v-if="plan_show && table_type === 'list'"
+          >方案总金额:{{ plan_show.sale_total }}元</span
+        >
+        <el-button-group
+          :size="'mini'"
+          class="fr"
+          v-if="table_type === 'list'"
+          style="margin: 8px 0 0 0"
+        >
+          <el-button
+            class="fr"
+            type="primary"
+            :size="'mini'"
+            :disabled="index === 0"
+            v-if="total !== 0"
+            icon="el-icon-arrow-left"
+            @click="index--, change_plan()"
+          ></el-button>
+          <el-button
+            type="primary"
+            class="fr"
+            v-if="total !== 0"
+            :size="'mini'"
+            style="height: 29px"
+            >方案共{{ index + 1 }}/{{ total }}</el-button
+          >
+          <el-button
+            type="primary"
+            class="fr"
+            :disabled="index + 1 === total"
+            v-if="total !== 0"
+            @click="index++, change_plan()"
+            :size="'mini'"
+            ><i class="el-icon-arrow-right el-icon--right" :size="'mini'"></i
+          ></el-button>
+          <el-button
+            type="primary"
+            class="fr"
+            v-if="
+              powers &&
+              powers.length > 0 &&
+              powers.some((item) => item == '064') &&
+              status == '3'
+            "
+            @click="add_plan"
+            icon="el-icon-circle-plus-outline"
+            :size="'mini'"
+            >添加方案
+          </el-button>
+        </el-button-group>
+        <el-button-group
+          :size="'mini'"
+          class="fr"
+          v-else-if="table_type === 'add'"
+          style="margin: 8px 0 0 0"
+        >
+          <el-button
+            class="fr"
+            type="primary"
+            :size="'mini'"
+            icon="el-icon-arrow-left"
+            @click="back_list"
+            >返回列表</el-button
+          >
+          <el-button type="primary" class="fr" @click="save_plan" :size="'mini'"
+            >保存方案<i class="el-icon-upload el-icon--right"></i>
+          </el-button>
+        </el-button-group>
+      </div>
+      <div class="project-setPlan-backGood-table" v-if="plan_show && tableList">
+        <div class="table-row">
+          <ul class="table-header">
+            <li v-for="head in headCol" :key="head.label">{{ head.label }}</li>
+          </ul>
+          <template v-if="tableList.length > 0">
+            {{ tableList[0] }}
+            <ul class="table-body" v-for="item in tableList" :key="item.planNo">
+              <li v-for="head in headCol" :key="head.prop + item.planNo">
+                <template v-if="head.prop === 'sale_price' && head._slot_">
+                  <digital-input
+                    v-if="table_type === 'add'"
+                    :values="item[head.prop]"
+                    :placeholder="'售价'"
+                    :min="0"
+                    :max="100000000000"
+                    :position="'right'"
+                    :precision="0"
+                    :size="'mini'"
+                    :controls="false"
+                    :append="''"
+                    @reschange="moq_num_change($event, 1)"
+                  />
+                </template>
+                <template v-if="head.prop === 'good_img' && head._slot_">
+                  <div
+                    v-if="item[head.prop]"
+                    style="width: 20px; height: 20px"
+                    class="hover"
+                    v-viewer
+                  >
+                    <img
+                      :src="item[head.prop]"
+                      style="display: inline-block; width: 100%; height: 100%"
+                      alt=""
+                    />
+                  </div>
+                </template>
+                <template v-else>
+                  <span>{{ item[head.prop] }}</span>
+                  <span v-if="head.unit">{{ head.unit }}</span>
+                </template>
+              </li>
+            </ul>
+          </template>
+          <div v-else class="table-no-data">暂无数据!</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import asyncRequest from "@/apis/service/sellOut/project";
+import resToken from "@/mixins/resToken";
+import columnsForm from "./columnsForm";
+export default {
+  name: "setPlan",
+  props: ["showModel", "sitem", "id", "type"],
+  mixins: [resToken],
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "projectDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
+  watch: {
+    // showModel: function (val) {
+    //   this.showModelThis = val;
+    //   if (val) {
+    //     this.initForm();
+    //   }
+    // },
+    // showModelThis(val) {
+    //   if (!val) {
+    //     this.$emit("cancel");
+    //   }
+    // },
+  },
+  data() {
+    return {
+      headCol: [
+        {
+          prop: "pgNo",
+          label: "要求编码",
+          _slot_: "status",
+        },
+        {
+          prop: "origin_price",
+          label: "系统售价单价",
+          unit: "元",
+        },
+        {
+          prop: "sale_price",
+          label: "当前销售单价",
+          _slot_: false,
+          unit: "元",
+        },
+        {
+          prop: "num",
+          label: "购买数量",
+        },
+        {
+          prop: "good_img",
+          label: "图片",
+          _slot_: true,
+        },
+        {
+          prop: "good_name",
+          label: "商品名称",
+        },
+        {
+          prop: "class_cat",
+          label: "商品分类",
+        },
+        {
+          prop: "model",
+          label: "规格",
+        },
+        {
+          prop: "expiry_day",
+          label: "信息有效期",
+          unit: "天",
+        },
+        {
+          prop: "work_day",
+          label: "制作工期",
+          unit: "天",
+        },
+        {
+          prop: "delivery_day",
+          label: "物流时间",
+          unit: "天",
+        },
+      ],
+      showModel: false,
+      searchItem: {},
+      loading: false,
+      allPlanList: [],
+      ladder: [],
+      tableList: [],
+      index: 0,
+      total: 0,
+      table_type: "list",
+      //   allList: [],
+      projectNo: "",
+      status: "",
+      statusOptions: [
+        { value: "1", label: "竞品" },
+        { value: "2", label: "竞聘" },
+      ],
+      table: {
+        stripe: true,
+        border: true,
+        // _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 列参数
+      columns: columnsForm,
+      tableData: [],
+      multipleSelection: [],
+      plan_show: {
+        sale_total: "0",
+        feedback: [],
+      },
+    };
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    //初始化整个组件
+    async initForm() {
+      // this.loading = true;
+      await this.initListData();
+      await this.back_list();
+      this.loading = false;
+    },
+    async resetFormData() {
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.loading = true;
+      this.tableData = [];
+      await this.searchList();
+    },
+    async back_list() {
+      this.table_type = "list";
+      await this.get_plan("1");
+    },
+    add_plan() {
+      this.table_type = "add";
+      this.plan_show = {
+        sale_total: "0",
+        feedback: [],
+      };
+    },
+    moq_num_change(e, index) {
+      this.plan_show.feedback[index].sale_price = e + "";
+      this.$set(
+        this.plan_show.feedback[index],
+        index,
+        this.plan_show.feedback[index]
+      );
+    },
+    //初始化整个组件
+    async initListData() {
+      console.log(this.sitem);
+      const { projectNo, ladder, status } = this.sitem;
+      this.status = status;
+      this.projectNo = projectNo;
+      this.ladder =
+        ladder && ladder.length > 0 ? JSON.parse(JSON.stringify(ladder)) : [];
+      this.pageInfo = {
+        size: 100,
+        curr: 1,
+        total: 0,
+      };
+      this.tableData = [];
+      await this.searchList();
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+
+      let list = JSON.parse(JSON.stringify(this.plan_show.feedback));
+      this.plan_show = {
+        sale_total: "0",
+        feedback: [],
+      };
+      this.multipleSelection.forEach((a, i) => {
+        let fi = list.findIndex((b) => a.id === b.id && b.pgNo === a.pgNo);
+        if (fi !== -1) {
+          this.plan_show.feedback.push(list[fi]);
+        } else {
+          this.plan_show.feedback.push(this.multipleSelection[i]);
+        }
+      });
+      this.plan_show.feedback.map((e) => {
+        e.sale_price = "0";
+        return e;
+      });
+    },
+
+    async searchList() {
+      const { size, curr } = this.pageInfo;
+      // this.loading = true;
+      let model = {
+        page: curr,
+        size: size,
+        zxNo: "",
+        infoNo: "",
+        bidNo: "",
+        status: "1",
+        pgNo: "",
+        projectNo: this.projectNo,
+      };
+      const { code, data } = await asyncRequest.back_good_list(model);
+      if (code === 0) {
+        const { list, count } = data;
+        this.tableData = list;
+        this.tableData.map((v) => {
+          v.class_cat = "";
+          if (v.can && v.can.length > 0) {
+            v.can.forEach((x, i) => {
+              v.class_cat += i === 0 ? x.name : "/" + x.name;
+            });
+          }
+          return v;
+        });
+        this.pageInfo.total = Number(count);
+      } else if (code >= 100 && code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      // this.loading = false;
+    },
+    //保存方案
+    async save_plan() {
+      if (!this.loading) {
+        const { feedback } = this.plan_show;
+        console.log(feedback);
+        let list = feedback;
+        let isok = true;
+        list.forEach((a) => {
+          let findex = list.findIndex(
+            (b) => b.pgNo === a.pgNo && a.id !== b.id
+          );
+          if (findex !== -1) {
+            isok = false;
+          }
+        });
+        if (!isok) {
+          this.$message.warning("一种商品要求只能选择一种商品!");
+          return;
+        }
+        let isall = true;
+        this.ladder.forEach((a) => {
+          let to = 0;
+          list.forEach((b) => {
+            if (a.pgNo === b.pgNo) {
+              to++;
+            }
+          });
+          if (to !== 1) {
+            isall = false;
+          }
+        });
+        if (!isall) {
+          this.$message.warning("方案必须涵盖全部商品要求!");
+          return;
+        }
+        this.loading = true;
+        let model = {
+          feedback: [],
+          projectNo: this.projectNo,
+        };
+
+        list.forEach((e) => {
+          let si = {
+            feedid: e.id,
+            sale_price: e.sale_price,
+          };
+          model.feedback.push(si);
+        });
+        const { code, data, message } = await asyncRequest.project_make_plan(
+          model
+        );
+        if (code === 0) {
+          await this.back_list();
+        } else if (code >= 100 && code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(message);
+        }
+        this.loading = false;
+      }
+    },
+    //获取全部方案
+    async get_plan(type) {
+      let model = {
+        projectNo: this.projectNo,
+      };
+      const { code, data, message } = await asyncRequest.get_project_plan(
+        model
+      );
+      if (code === 0) {
+        this.allPlanList =
+          data && data.length > 0 ? JSON.parse(JSON.stringify(data)) : [];
+        this.total = this.allPlanList.length;
+
+        if (type) {
+          await this.change_plan("1");
+        }
+      } else if (code >= 100 && code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(message);
+      }
+    },
+    //切换当前展示的方案
+    async change_plan(type) {
+      this.table_type = "list";
+      this.plan_show = {
+        sale_total: "0",
+        feedback: [],
+      };
+      if (type) {
+        this.index = 0;
+      }
+      console.log(this.allPlanList[this.index]);
+      const { sale_total, feedback, planNo } = JSON.parse(
+        JSON.stringify(this.allPlanList[this.index])
+      );
+      this.plan_show = {
+        sale_total: sale_total,
+        feedback:
+          feedback && feedback.length > 0
+            ? JSON.parse(JSON.stringify(feedback))
+            : [],
+      };
+      // for (let i = 0; i < this.plan_show.feedback.length; i++) {
+      //   this.plan_show.feedback[i].planNo = planNo;
+      // }
+      this.tableList = JSON.parse(JSON.stringify(this.plan_show.feedback));
+      // for (let i = 0; i < this.plan_show.feedback.length; i++) {
+      //   this.$set(this.plan_show.feedback[i], i, this.plan_show.feedback[i]);
+      // }
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+.project-setPlan {
+  box-sizing: border-box;
+  width: 100%;
+
+  .project-setPlan-main {
+    padding: 2px 16px 16px 16px;
+    // background: #fefefe;
+    border-radius: 5px;
+    overflow: hidden;
+    border: 1px solid #f0f0f0;
+    margin: 0 0 16px 0;
+    .project-setPlan-title {
+      height: 48px;
+      line-height: 48px;
+      color: #676767;
+    }
+  }
+  .table-row {
+    width: 100%;
+    border-top: 1px solid #dfe6ec;
+    .table-header,
+    .table-body {
+      display: flex;
+      //
+      border-left: 1px solid #dfe6ec;
+      li {
+        width: 110px;
+        font-weight: 500;
+        font-size: 12px;
+        padding: 10px;
+        overflow: hidden;
+        box-sizing: border-box;
+        border-right: 1px solid #dfe6ec;
+        border-bottom: 1px solid #dfe6ec;
+        &:nth-child(1) {
+          width: 180px;
+        }
+      }
+    }
+    .table-header {
+      li {
+        color: #909399;
+      }
+    }
+    .table-body {
+      li {
+        color: #606266;
+      }
+    }
+  }
+}
+</style>

+ 39 - 16
src/views/sellOut/project/components/setPlan.vue

@@ -139,7 +139,7 @@
       </div>
       <div class="project-setPlan-title">
         方案制定
-        <span v-if="plan_show && table_type === 'list'"
+        <span v-if="total !== 0 && table_type === 'list'"
           >方案总金额:{{ plan_show.sale_total }}元</span
         >
         <el-button-group
@@ -152,7 +152,8 @@
             class="fr"
             type="primary"
             :size="'mini'"
-            v-if="index !== 0 && total !== 0"
+            :disabled="index === 0"
+            v-if="total !== 0"
             icon="el-icon-arrow-left"
             @click="index--, change_plan()"
           ></el-button>
@@ -167,7 +168,8 @@
           <el-button
             type="primary"
             class="fr"
-            v-if="index + 1 !== total && total !== 0"
+            :disabled="index + 1 === total"
+            v-if="total !== 0"
             @click="index++, change_plan()"
             :size="'mini'"
             ><i class="el-icon-arrow-right el-icon--right" :size="'mini'"></i
@@ -175,6 +177,12 @@
           <el-button
             type="primary"
             class="fr"
+            v-if="
+              powers &&
+              powers.length > 0 &&
+              powers.some((item) => item == '064') &&
+              (status == '3' || status == '4')
+            "
             @click="add_plan"
             icon="el-icon-circle-plus-outline"
             :size="'mini'"
@@ -200,10 +208,7 @@
           </el-button>
         </el-button-group>
       </div>
-      <div
-        class="project-setPlan-backGood-table"
-        v-if="plan_show && plan_show.feedback && plan_show.feedback.length"
-      >
+      <div class="project-setPlan-backGood-table">
         <el-table
           :data="plan_show.feedback"
           :size="'mini'"
@@ -226,7 +231,7 @@
           />
 
           <el-table-column
-            prop="sale_price"
+            prop="new_sale_price"
             label="当前销售单价"
             width="110"
             show-overflow-tooltip
@@ -234,7 +239,7 @@
             <template slot-scope="scope">
               <digital-input
                 v-if="table_type === 'add'"
-                :values="scope.row.sale_price"
+                :values="scope.row.new_sale_price"
                 :placeholder="'售价'"
                 :min="0"
                 :max="100000000000"
@@ -317,6 +322,19 @@ export default {
   name: "setPlan",
   props: ["showModel", "sitem", "id", "type"],
   mixins: [resToken],
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "projectDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
   watch: {
     // showModel: function (val) {
     //   this.showModelThis = val;
@@ -342,6 +360,7 @@ export default {
       table_type: "list",
       //   allList: [],
       projectNo: "",
+      status: "",
       statusOptions: [
         { value: "1", label: "竞品" },
         { value: "2", label: "竞聘" },
@@ -394,7 +413,7 @@ export default {
       };
     },
     moq_num_change(e, index) {
-      this.plan_show.feedback[index].sale_price = e + "";
+      this.plan_show.feedback[index].new_sale_price = e + "";
       this.$set(
         this.plan_show.feedback[index],
         index,
@@ -404,7 +423,8 @@ export default {
     //初始化整个组件
     async initListData() {
       console.log(this.sitem);
-      const { projectNo, ladder } = this.sitem;
+      const { projectNo, ladder, status } = this.sitem;
+      this.status = status;
       this.projectNo = projectNo;
       this.ladder = JSON.parse(JSON.stringify(ladder));
       this.pageInfo = {
@@ -426,13 +446,15 @@ export default {
       this.multipleSelection.forEach((a, i) => {
         let fi = list.findIndex((b) => a.id === b.id && b.pgNo === a.pgNo);
         if (fi !== -1) {
-          this.plan_show.feedback.push(list[fi]);
+          this.plan_show.feedback.push(JSON.parse(JSON.stringify(list[fi])));
         } else {
-          this.plan_show.feedback.push(this.multipleSelection[i]);
+          this.plan_show.feedback.push(
+            JSON.parse(JSON.stringify(this.multipleSelection[i]))
+          );
         }
       });
       this.plan_show.feedback.map((e) => {
-        e.sale_price = "0";
+        e.new_sale_price = "0";
         return e;
       });
     },
@@ -516,7 +538,7 @@ export default {
         list.forEach((e) => {
           let si = {
             feedid: e.id,
-            sale_price: e.sale_price,
+            sale_price: e.new_sale_price,
           };
           model.feedback.push(si);
         });
@@ -544,7 +566,7 @@ export default {
       if (code === 0) {
         this.allPlanList = JSON.parse(JSON.stringify(data));
         this.total = this.allPlanList.length;
-        if (type) {
+        if (type && this.allPlanList.length > 0) {
           await this.change_plan("1");
         }
       } else if (code >= 100 && code <= 104) {
@@ -570,6 +592,7 @@ export default {
         sale_total: sale_total,
         feedback: JSON.parse(JSON.stringify(feedback)),
       };
+      console.log(this.plan_show);
       for (let i = 0; i < this.plan_show.feedback.length; i++) {
         this.$set(this.plan_show.feedback[i], i, this.plan_show.feedback[i]);
       }

+ 35 - 35
src/views/sellOut/project/detail.vue

@@ -1,9 +1,21 @@
 <template>
   <div class="projectDetail">
+    <div>{{powers}}</div>
     <div
       class="projectDetail-main"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
     >
+      <div class="share-a" v-if="powers.some((item) => item == '063')">
+        <el-tooltip effect="dark" content="分享项目" placement="top">
+          <el-button
+            @click="copyToClip('good-share')"
+            type="primary"
+            :size="'mini'"
+            icon="el-icon-position"
+            circle
+          ></el-button>
+        </el-tooltip>
+      </div>
       <el-tabs v-model="projectTabs">
         <el-tab-pane label="新建项目" name="0" v-if="queryType === 'add'">
           <add-form
@@ -18,22 +30,6 @@
         <el-tab-pane label="项目详情" name="1" v-if="queryType !== 'add'">
           <el-collapse v-model="projectNames" style="margin: -18px 0 0 0">
             <el-collapse-item title="项目详情" name="0">
-              <div>
-                <el-button
-                  @click="copyToClip('good-share')"
-                  type="danger"
-                  :size="'mini'"
-                  icon="el-icon-position"
-                  circle
-                ></el-button>
-                <el-button
-                  @click="copyToClip('purchaseIn/workbenchDetail')"
-                  type="danger"
-                  :size="'mini'"
-                  icon="el-icon-position"
-                  circle
-                ></el-button>
-              </div>
               <add-form
                 v-if="newTime !== ''"
                 :newTime="newTime"
@@ -43,7 +39,11 @@
                 @refresh="refresh"
               />
             </el-collapse-item>
-            <el-collapse-item title="设置项目毛利率" name="1">
+            <el-collapse-item
+              title="设置项目毛利率"
+              name="1"
+              v-if="powers.some((item) => item == '061')"
+            >
               <gross-form
                 v-if="newTime !== ''"
                 :newTime="newTime"
@@ -65,7 +65,14 @@
             @refresh="initForm()"
           />
         </el-tab-pane>
-        <el-tab-pane label="方案制作" name="3" v-if="queryType !== 'add'">
+        <el-tab-pane
+          label="方案制作"
+          name="3"
+          v-if="
+            queryType !== 'add' &&
+            (status === '3' || status === '4' || status === '5'|| status === '6')
+          "
+        >
           <set-plan
             :id="queryId"
             v-if="newTime !== ''"
@@ -94,10 +101,6 @@ import addForm from "./components/addForm";
 import grossForm from "./components/grossForm";
 import backGoodShow from "./components/backGoodShow";
 import setPlan from "./components/setPlan";
-import urlConfig from "@/apis/url-config";
-// import financeExamOneForm from "./components/finance-exam-one-form";
-// import financeExamTwoForm from "./components/finance-exam-two-form";
-// import financeExamThreeForm from "./components/finance-exam-three-form";
 export default {
   name: "projectDetail",
   mixins: [resToken],
@@ -106,9 +109,6 @@ export default {
     grossForm,
     backGoodShow,
     setPlan,
-    // financeExamOneForm,
-    // financeExamTwoForm,
-    // financeExamThreeForm,
   },
   computed: {
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
@@ -130,7 +130,7 @@ export default {
       statusList: [],
 
       size: "small",
-      projectTabs: "4",
+      projectTabs: "1",
       projectNames: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
       newTime: "",
       loading: false,
@@ -148,7 +148,7 @@ export default {
       const { id, type } = this.$route.query;
       this.queryId = id;
       this.queryType = type;
-      this.projectTabs = type === "add" ? "0" : "3";
+      this.projectTabs = type === "add" ? "0" : "1";
       this.loading = true;
       if (this.queryType === "add") {
         this.sitem = {};
@@ -201,7 +201,6 @@ export default {
     },
     copyToClip(title) {
       const { host } = window.location;
-      //
       let url = `${host}/#/${title}?id=${this.queryId}`;
       let aux = document.createElement("input");
       aux.setAttribute("value", url);
@@ -212,13 +211,8 @@ export default {
       this.$message.warning("分享链接已成功复制至粘贴板!");
     },
     async refresh(e) {
-      const { projectNo } = e;
-      let model = {
-        id: this.queryType === "add" ? projectNo : this.queryId,
-        type: "view",
-      };
-      this.routeReGoto("projectDetail", model);
-      await this.initForm();
+     
+      this.routeReGoto("project", {});
     },
     async initData() {
       this.loading = true;
@@ -256,6 +250,12 @@ export default {
     padding: 10px;
     height: 100%;
     width: 100%;
+    .share-a {
+      position: absolute;
+      top: 10px;
+      right: 16px;
+      z-index: 2;
+    }
   }
   .projectDetail-title {
     border-top: 1px solid #ebeef5;

+ 3 - 3
src/views/sellOut/project/index.vue

@@ -42,7 +42,7 @@
                     "
                   >
                     <el-option
-                      v-for="item in statusList"
+                      v-for="item in statusOptions"
                       :key="'project' + item.id"
                       :label="item.label"
                       :value="item.id"
@@ -141,7 +141,6 @@
         <template #status="{ scope }">
           <el-tag
             :size="tablebtnSize"
-            :type="scope.row.status == '0' ? 'warning' : ''"
             v-text="
               (statusOptions.find((item) => item.id == scope.row.status) || {})
                 .label || '--'
@@ -212,7 +211,8 @@ export default {
         { id: "2", label: "待客户选择商品" },
         { id: "3", label: "待项目方案制定" },
         { id: "4", label: "待方案选择" },
-        { id: "5", label: "项目结束" },
+        { id: "5", label: "项目待下单" },
+        { id: "6", label: "项目已结束" },
       ],
 
       loading: true,

+ 10 - 10
src/views/sellOut/stockApply/components/addEdit.vue

@@ -45,12 +45,12 @@
         <el-col :span="7">
           <el-form-item
             label="最晚入库时间"
-            prop="last_go_stock"
+            prop="lasttime"
             label-width="120px"
           >
             <el-date-picker
-              v-model="ruleForm.last_go_stock"
-              type="date"
+              v-model="ruleForm.lasttime"
+              type="datetime"
               style="width: 100%"
               value-format="yyyy-MM-dd HH:mm:ss"
               placeholder="最晚入库时间"
@@ -199,7 +199,7 @@ export default {
         goods_num: "",
         file_url: "",
         file_url_name: "",
-        last_go_stock: "",
+        lasttime: "",
         remark: "",
         // supplier_code: [],
         // supplier_name: "",
@@ -221,7 +221,7 @@ export default {
             trigger: "blur",
           },
         ],
-        last_go_stock: [
+        lasttime: [
           {
             required: true,
             message: "请输入入库最晚时间!",
@@ -261,10 +261,10 @@ export default {
 
     // 执行点击商品名称的抛出事件
     addGoodsRes(e) {
-      let { good_code, type_code, good_name } = e[0];
+      let { spuCode, type_code, good_name } = e[0];
       this.ruleForm.goods_name = good_name;
       this.ruleForm.good_type_code = type_code;
-      this.ruleForm.good_code = good_code;
+      this.ruleForm.good_code = spuCode;
       this.$refs.ruleForm.validateField("goods_name");
     },
 
@@ -299,7 +299,7 @@ export default {
               good_type_code,
               goods_name: good_name,
               goods_num: good_num,
-              last_go_stock: lasttime,
+              lasttime: lasttime,
               file_url: file_url || "",
               file_url_name: file_name || "",
 
@@ -322,7 +322,7 @@ export default {
             file_url,
             file_name,
             // stock_code,
-            last_go_stock,
+            lasttime,
           } = this.ruleForm;
           let model = {
             id: id,
@@ -334,7 +334,7 @@ export default {
             // wsm_code:
             //   this.id == "add" ? stock_code.toString() : stock_code.toString(),
 
-            lastime: last_go_stock || "",
+            lastime: lasttime || "",
           };
           let res = {};
           if (this.id === "add") {

+ 1 - 1
src/views/sellOut/zixunOrder/columns.js

@@ -488,7 +488,7 @@ const feedbackListCol = [
     fixed: "right",
     _noset_: true,
     _slot_: "operation",
-    width: 100,
+    width: 50,
   },
 ]
 

+ 1 - 1
src/views/sellOut/zixunOrder/components/addEditForm.vue

@@ -53,7 +53,7 @@
           <el-date-picker
             v-model="ruleForm.endtime"
             type="datetime"
-            value-format="yyyy-MM-dd hh:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss"
             style="width: 100%"
             :picker-options="pickerOptions"
             placeholder="咨询截止时间"

+ 1 - 1
src/views/sellOut/zixunOrder/components/editForm.vue

@@ -63,7 +63,7 @@
           <el-date-picker
             v-model="ruleForm.endtime"
             type="datetime"
-            value-format="yyyy-MM-dd hh:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss"
             style="width: 100%"
             :disabled="type === 'view'"
             :picker-options="pickerOptions"

+ 83 - 83
src/views/sellOut/zixunOrder/components/feedbackList.vue

@@ -1,62 +1,59 @@
 <template>
   <div class="zixunOrder pagePadding">
-    <div
-      v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
+    <ex-table
+      v-loading="loading"
+      :table="table"
+      :data="tableData"
+      :columns="columns"
+      :page="pageInfo"
+      :size="size"
+      @page-curr-change="handlePageChange"
+      @page-size-change="handleSizeChange"
+      @screen-reset="
+        pageInfo.curr = 1;
+        parmValue.page = 1;
+        searchList();
+      "
+      @screen-submit="
+        pageInfo.curr = 1;
+        parmValue.page = 1;
+        searchList();
+      "
     >
-      <ex-table
-        v-loading="loading"
-        :table="table"
-        :data="tableData"
-        :columns="columns"
-        :page="pageInfo"
-        :size="size"
-        @page-curr-change="handlePageChange"
-        @page-size-change="handleSizeChange"
-        @screen-reset="
-          pageInfo.curr = 1;
-          parmValue.page = 1;
-          searchList();
-        "
-        @screen-submit="
-          pageInfo.curr = 1;
-          parmValue.page = 1;
-          searchList();
-        "
-      >
-        <template #good_img="{ scope }">
-          <div
-            v-if="scope.row.good_img"
-            style="width: 20px; height: 20px"
-            class="hover"
-            v-viewer
-          >
-            <img
-              :src="scope.row.good_img"
-              style="display: inline-block; width: 100%; height: 100%"
-              alt=""
-            />
-          </div>
-        </template>
-        <template #status="{ scope }">
-          <el-tag
-            :size="tablebtnSize"
-            :type="scope.row.status == '0' ? 'warning' : ''"
-            v-text="
-              (statusOptions.find((item) => item.id == scope.row.status) || {})
-                .label || '--'
-            "
-          ></el-tag>
-        </template>
-        <template #specinfo="{ scope }">
-          <span v-for="(si, sii) in scope.row.specinfo" :key="si.specid + sii">
-            <span v-if="sii !== 0"></span>{{ si.spec_name }}[{{
-              si.spec_value_name
-            }}]</span
-          >
-        </template>
+      <template #good_img="{ scope }">
+        <div
+          v-if="scope.row.good_img"
+          style="width: 20px; height: 20px"
+          class="hover"
+          v-viewer
+        >
+          <img
+            :src="scope.row.good_img"
+            style="display: inline-block; width: 100%; height: 100%"
+            alt=""
+          />
+        </div>
+      </template>
+      <template #status="{ scope }">
+        <el-tag
+          :size="tablebtnSize"
+          :type="scope.row.status == '0' ? 'warning' : ''"
+          v-text="
+            (statusOptions.find((item) => item.id == scope.row.status) || {})
+              .label || '--'
+          "
+        ></el-tag>
+      </template>
+      <template #specinfo="{ scope }">
+        <span v-for="(si, sii) in scope.row.specinfo" :key="si.specid + sii">
+          <span v-if="sii !== 0"></span>{{ si.spec_name }}[{{
+            si.spec_value_name
+          }}]</span
+        >
+      </template>
 
-        <template #operation="{ scope }">
-          <el-tooltip
+      <template #operation="{ scope }">
+        <!-- <el-tooltip
             v-if="powers.some((item) => item == '007')"
             effect="dark"
             content="详情"
@@ -71,36 +68,36 @@
                 })
               "
             ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="powers.some((item) => item == '007')"
-            effect="dark"
-            content="发起议价流程"
-            placement="top"
-          >
-            <i
-              class="el-icon-s-flag tb-icon"
-              @click="wantBargaining(scope.row)"
-            ></i>
-          </el-tooltip>
-        </template>
-      </ex-table>
-      <add-edit-bargain
-        :showModel="wantBmodel"
-        :sitem="wantBsitem"
-        @cancel="wantBmodel = false"
-        @refresh="(wantBmodel = false), searchList()"
-      />
-    </div>
-    <div v-else>
-      <no-auth></no-auth>
-    </div>
+          </el-tooltip> -->
+        <el-tooltip
+          v-if="
+            powers &&
+            powers.length > 0 &&
+            powers.some((item) => item == '068') &&
+            !is_project
+          "
+          effect="dark"
+          content="发起议价流程"
+          placement="top"
+        >
+          <i
+            class="el-icon-s-flag tb-icon"
+            @click="wantBargaining(scope.row)"
+          ></i>
+        </el-tooltip>
+      </template>
+    </ex-table>
+    <add-edit-bargain
+      :showModel="wantBmodel"
+      :sitem="wantBsitem"
+      @cancel="wantBmodel = false"
+      @refresh="(wantBmodel = false), searchList()"
+    />
   </div>
 </template>
    <script>
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
-import statusList from "@/assets/js/statusList";
 import asyncRequest from "@/apis/service/sellOut/zixunOrder";
 import { feedbackListCol } from "../columns";
 import { mapGetters } from "vuex";
@@ -109,7 +106,7 @@ import addEditBargain from "./addEditBargain";
 export default {
   name: "zixunOrder",
   mixins: [mixinPage, resToken],
-  props: ["id", "newTime"],
+  props: ["id", "newTime", "sitem"],
   components: {
     addEditBargain,
   },
@@ -118,7 +115,7 @@ export default {
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "zixunOrder"
+          (item) => item.menu_route == "zixunOrderDetail"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -133,6 +130,7 @@ export default {
       wantBsitem: "",
       select: "1",
       s_input: "",
+      is_project: false,
       customerCode: [], //客户公司code
       options: [
         { id: "0", label: "待发布竞标" },
@@ -158,7 +156,6 @@ export default {
         { id: "4", label: "已退货" },
         { id: "5", label: "待客户验收" },
       ],
-      statusList: statusList,
       loading: true,
       showModel: false,
       isDetail: false,
@@ -239,6 +236,9 @@ export default {
     };
   },
   mounted() {
+    console.log(this.sitem);
+    const { is_project } = this.sitem;
+    this.is_project = is_project;
     this.searchList();
   },
 

+ 62 - 27
src/views/sellOut/zixunOrder/detail.vue

@@ -19,12 +19,33 @@
               '--'
             "
           ></el-tag>
-          <i
-            v-if="sitem.status === '1'"
-            class="el-icon-video-pause"
-            style="margin: 0 0 0 10px"
-            @click="changeStatus('2')"
-          ></i>
+          <el-tooltip
+            effect="dark"
+            content="停止招标任务"
+            placement="top"
+            v-if="sitem.status === '1' && powers.some((item) => item == '066')"
+          >
+            <i
+              class="el-icon-video-pause hover"
+              style="margin: 0 0 0 10px"
+              @click="changeStatus('7')"
+            ></i>
+          </el-tooltip>
+          <el-tooltip
+            effect="dark"
+            content="启动招标任务"
+            placement="top"
+            v-if="
+              (sitem.status === '7' || sitem.status === '2') &&
+              powers.some((item) => item == '067')
+            "
+          >
+            <i
+              class="el-icon-video-play hover"
+              style="margin: 0 0 0 10px"
+              @click="changeStatus('1')"
+            ></i>
+          </el-tooltip>
         </template>
 
         <template slot="departinfo">
@@ -59,6 +80,7 @@
           <feedback-list
             v-if="newTime !== ''"
             :newTime="newTime"
+            :sitem="sitem"
             :id="queryId"
           />
         </el-tab-pane>
@@ -199,30 +221,43 @@ export default {
      * @param {String} status 0-禁用 1-启用
      */
     async changeStatus(status) {
-      await this.$confirm(`确定要停止招标任务么?`, {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
+      await this.$confirm(
+        status === "7" ? `确定要停止招标任务么?` : "确定要重启招标任务么?",
+        status === "7" ? "" : "重启需要重新编辑咨询信息",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
         .then(async () => {
-          this.loading = true;
-          let model = {
-            infoNo: this.queryId,
-            status: status,
-          };
-          const res = await asyncRequest.status(model);
-          console.log(res);
-          this.loading = false;
-          if (res && res.code === 0) {
-            this.$notify.success({
-              title: "招标任务已结束!",
-              message: "",
-            });
+          if (status === "7") {
+            this.loading = true;
+            let model = {
+              infoNo: this.queryId,
+              status: status,
+            };
+            const res = await asyncRequest.status(model);
+            console.log(res);
+            this.loading = false;
+            if (res && res.code === 0) {
+              this.$notify.success({
+                title: "招标任务已结束!",
+                message: "",
+              });
               await this.initForm();
-          } else if (res && res.code >= 100 && res.code <= 104) {
-            await this.logout();
+            } else if (res && res.code >= 100 && res.code <= 104) {
+              await this.logout();
+            } else {
+              this.$message.warning(res.message);
+            }
           } else {
-            this.$message.warning(res.message);
+            let model = {
+              id: this.queryId,
+              type: "edit",
+            };
+            this.routeReGoto("zixunOrderDetail", model);
+            location.reload();
           }
         })
         .catch(() => {

+ 24 - 0
src/views/serviceParam/supplier/index.vue

@@ -56,6 +56,28 @@
                 />
               </el-select>
             </el-col>
+            <el-col :span="4" style="width: 200px; padding: 0 0 0 10px">
+              <el-select
+                v-model="parmValue.ocr_status"
+                filterable
+                clearable
+                :size="searchSize"
+                placeholder="营业执照识别状态"
+                style="width: 100%"
+                @change="
+                  pageInfo.curr = 1;
+                  parmValue.page = 1;
+                  searchList();
+                "
+              >
+                <el-option
+                  v-for="item in ocr_status"
+                  :key="'ocr_status' + item.id"
+                  :label="item.label"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-col>
 
             <el-col
               :span="3"
@@ -294,6 +316,7 @@ export default {
         status: "",
         creater: "",
         name: "",
+        ocr_status:""
       },
       // 状态
       statusOptions: [
@@ -395,6 +418,7 @@ export default {
         creater: "",
         name: "",
         person: "",
+        ocr_status:""
       };
       this.searchList();
     },

+ 1 - 0
src/views/system/parameter/index.vue

@@ -49,6 +49,7 @@
               style="width: 100%"
               :picker-options="pickerOptions"
               type="datetime"
+              value-format="yyyy-MM-dd HH:mm:ss"
               placeholder="选择日期时间"
               default-time="00:00:00"
             />

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov