فهرست منبع

projectfeeddheck

戴艳蓉 3 سال پیش
والد
کامیت
c8a13eeedc

+ 2 - 2
src/config/env.production.js

@@ -6,8 +6,8 @@ module.exports = {
     // baseApi: 'http://inv.sitw.wanyuhengtong.com/',
     // tableApi: 'http://inv.sit.wanyuhengtong.com/',
 
-    userApi: 'http://inv.test241.wanyuhengtong.com/',
-    baseApi: 'http://stock.test241.wanyuhengtong.com/',
+    userApi: 'http://inv.sitw.wanyuhengtong.com/',
+    baseApi: 'http://stock.api.wanyuhengtong.com/',
   },
   fileURL: `https://api2.edu.futurelab.tv`,
   appId: 'wx5ac3a2c2d72b6f26',

+ 1 - 1
src/views/dashboard/index.vue

@@ -38,7 +38,7 @@ export default {
   padding: 0 0 0 0;
   position: relative;
   width: 100%;
-  min-height: 100%;
+  min-height: calc( 100vh - 50px);
   display: inline-block;
   background-color: #e3e3e3;
 }

+ 70 - 8
src/views/good-share/components/changeBackGood.vue

@@ -165,11 +165,21 @@
               label="物流时间"
               show-overflow-tooltip
             />
-            <el-table-column
-              prope="salesman"
-              label="业务员"
-              show-overflow-tooltip
-            />
+            <el-table-column fixed="right" label="操作" width="50">
+              <template slot-scope="scope">
+                <el-tooltip
+                  v-if="powers.some((item) => item == '006')"
+                  effect="dark"
+                  content="删除"
+                  placement="top"
+                >
+                  <i
+                    class="el-icon-delete tb-icon"
+                    @click="deleteItem(scope.$index)"
+                  ></i>
+                </el-tooltip>
+              </template>
+            </el-table-column>
           </el-table>
         </div>
       </div>
@@ -203,6 +213,7 @@ export default {
       allList: [],
       index: 0,
       projectNo: "",
+      status: "",
       statusOptions: [
         { value: "1", label: "竞品" },
         { value: "2", label: "竞聘" },
@@ -238,7 +249,7 @@ export default {
       // console.log(this.allList);
       await this.searchList(this.index);
     },
-    next() {
+    async next() {
       const { selection } = this.allList[this.index];
       if (selection.length === 0) {
         this.$message.warning("至少选择一个商品!");
@@ -246,7 +257,53 @@ export default {
       }
       if (this.index + 1 !== this.allList.length) {
         this.index++;
+        await this.searchList(this.index);
       } else {
+        await this.$confirm("确定要保存么?", "商品只能选择一次!", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(async () => {
+            await this.submitForm();
+          })
+          .catch(() => {
+            console.log("取消");
+          });
+      }
+    },
+    deleteItem(index) {
+      let list = JSON.parse(JSON.stringify(this.allList[this.index].selection));
+      list.forEach((e, i) => {
+        if (e.spuCode === this.tableData[index].spuCode) {
+          this.allList[this.index].selection.splice(i, 1);
+        }
+      });
+      this.tableData.splice(index, 1);
+    },
+    async submitForm() {
+      if (!this.loading) {
+        this.loading = true;
+        let list = JSON.parse(JSON.stringify(this.tableData));
+        const model = {
+          feedid: [],
+        };
+        list.forEach((e) => {
+          model.feedid.push(e.id);
+        });
+        let res = await asyncRequest.back_good_submit(model);
+        this.loading = false;
+        if (res && res.code === 0) {
+          this.$notify.success({
+            title: "保存成功!",
+            message: "",
+          });
+          this.$emit("refresh");
+        } else if (res && res.code >= 100 && res.code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(res.message);
+        }
       }
     },
     selection_change(e) {
@@ -270,7 +327,8 @@ export default {
     async initListData() {
       // console.log(this.sitem);
       this.allList = [];
-      const { projectNo, ladder } = this.sitem;
+      const { projectNo, ladder, status } = this.sitem;
+      this.status = status;
       this.projectNo = projectNo;
       if (ladder && ladder.length > 0) {
         ladder.forEach((e) => {
@@ -283,6 +341,7 @@ export default {
               curr: 1,
               total: 0,
             },
+            pgNo:item.pgNo,
             loading: true,
             selection: [],
             tableData: [],
@@ -310,8 +369,9 @@ export default {
       await this.searchList(index);
     },
     async searchList(index) {
-      const { pageInfo } = this.allList[index];
+      const { pageInfo,pgNo } = this.allList[index];
       const { size, curr } = pageInfo;
+      console.log(pgNo);
       this.allList[index].loading = true;
       let model = {
         page: curr,
@@ -319,6 +379,8 @@ export default {
         zxNo: "",
         infoNo: "",
         bidNo: "",
+        pgNo:pgNo,
+        status: this.status === "3" ? "1" : "",
         projectNo: this.projectNo,
       };
       const { code, data } = await asyncRequest.back_good_list(model);

+ 7 - 1
src/views/good-share/components/columnsForm.js

@@ -1,5 +1,5 @@
 export default [
-    { type: "selection", fixed: "left", _noset_: true },
+    // { type: "selection", fixed: "left", _noset_: true },
     {
         prop: "spuCode",
         label: "商品编号",
@@ -18,6 +18,12 @@ export default [
         prop: "class_cat",
         label: "商品分类",
     },
+
+    {
+        prop: "unit_name",
+        label: "单位",
+        'width': '50px'
+    },
     {
         prop: "model",
         label: "规格",

+ 256 - 0
src/views/good-share/components/showBackGood.vue

@@ -0,0 +1,256 @@
+<template>
+  <div class="showbackgood">
+    <div
+      class="slist-card"
+    >
+      <div class="project-backGoodShow" v-loading="loading">
+        <div class="project-backGoodShow-main">
+          <div class="project-backGoodShow-title">商品要求</div>
+          <div class="project-backGoodShow-ask-table">
+            <template v-if="ladder">
+              <el-table
+                :data="ladder"
+                :size="'mini'"
+                border
+                stripe
+                style="width: 100%"
+              >
+                <el-table-column prop="good_type" label="商品类型" width="80px">
+                  <template slot-scope="scope">
+                    <el-tag
+                      :size="'mini'"
+                      v-text="
+                        (
+                          statusOptions.find(
+                            (items) => items.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-backGoodShow-title">商品反馈情况</div>
+          <div class="project-backGoodShow-backGood-table">
+            <template v-if="tableData">
+              <ex-table
+                v-loading="loading"
+                :table="table"
+                :data="tableData"
+                :columns="columns"
+                :page="pageInfo"
+                :size="'mini'"
+                @page-curr-change="handlePageChange($event)"
+                @page-size-change="handleSizeChange($event)"
+                @screen-reset="
+                  pageInfo.curr = 1;
+                  searchList();
+                "
+                @screen-submit="
+                  pageInfo.curr = 1;
+                  searchList();
+                "
+              >
+              </ex-table>
+            </template>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import asyncRequest from "@/apis/service/good-share";
+import resToken from "@/mixins/resToken";
+import columnsForm from "./columnsForm";
+export default {
+  name: "changeBackGood",
+  props: ["showModel", "sitem", "id", "type", "newTime"],
+  mixins: [resToken],
+  watch: {
+    // showModel: function (val) {
+    //   this.showModelThis = val;
+    //   if (val) {
+    //     this.initForm();
+    //   }
+    // },
+    // showModelThis(val) {
+    //   if (!val) {
+    //     this.$emit("cancel");
+    //   }
+    // },
+  },
+  data() {
+    return {
+      loading: false,
+      pageInfo: {
+        size: 15,
+        curr: 1,
+        total: 0,
+      },
+      ladder: [],
+
+      tableData: [],
+      projectNo: "",
+      status: "",
+      statusOptions: [
+        { value: "1", label: "竞品" },
+        { value: "2", label: "竞聘" },
+      ],
+      sitemStatusoptions: [
+        { value: "1", label: "待商品反馈" },
+        { value: "2", label: "待项目反馈商品选择" },
+        { value: "3", label: "待项目方案制定" },
+        { value: "4", label: "待方案选择" },
+        { value: "5", label: "项目结束" },
+      ],
+      table: {
+        stripe: true,
+        border: true,
+        // _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 列参数
+      columns: columnsForm,
+    };
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    //初始化整个组件
+    async initForm() {
+      this.loading = true;
+      this.tableData = [];
+      await this.initListData();
+      console.log(this.allList);
+      this.loading = false;
+      // console.log(this.allList);
+    },
+
+    //初始化整个组件
+    async initListData() {
+      // console.log(this.sitem);
+      this.allList = [];
+      const { projectNo, ladder, status } = this.sitem;
+      this.status = status;
+      this.projectNo = projectNo;
+      this.ladder = JSON.parse(JSON.stringify(ladder));
+      this.tableData = [];
+      await this.searchList();
+    },
+    //页数选择
+    async handlePageChange(e) {
+      this.pageInfo.curr = e;
+      await this.searchList();
+    },
+    //页面条数选择
+    async handleSizeChange(e) {
+      this.pageInfo.curr = 1;
+      this.pageInfo.size = e;
+      await this.searchList();
+    },
+    async searchList() {
+      const { size, curr } = this.pageInfo;
+      this.loading = true;
+      let model = {
+        page: curr,
+        size: size,
+        zxNo: "",
+        infoNo: "",
+        bidNo: "",
+        pgNo: "",
+        status: "1",
+        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;
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+.showbackgood {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow-y: scroll;
+  box-sizing: border-box;
+  background: transparent;
+  .slist-card {
+    background: #fff;
+    padding: 0 16px 16px 16px;
+    margin: 16px 0 0 0;
+    &:last-child {
+      margin-bottom: 16px;
+    }
+  }
+  // padding:16px;
+  // border:1px solid #f2f2f2;
+
+  .project-backGoodShow {
+    box-sizing: border-box;
+    width: 100%;
+    // padding: 2px 16px 16px 16px;
+
+    .project-backGoodShow-main {
+      // padding: 2px 16px 16px 16px;
+      // background: #fefefe;
+      // border-radius: 5px;
+      // overflow: hidden;
+      // border: 1px solid #f0f0f0;
+      // margin: 0 0 16px 0;
+      .project-backGoodShow-title {
+        height: 48px;
+        line-height: 48px;
+        color: #676767;
+      }
+    }
+  }
+}
+</style>

+ 49 - 24
src/views/good-share/index.vue

@@ -3,33 +3,48 @@
     <div class="left">
       <div class="title">项目信息</div>
       <ul class="clear" v-show="sitem">
-        <li>总预算:</li>
-        <li>{{ sitem.budget_total }}元</li>
-        <li>要求到货日期:</li>
-        <li>{{ sitem.arrtime }}</li>
-        <li>业务员:</li>
-        <li>{{ sitem.creater }}</li>
-        <li>购买方:</li>
         <li>
-          {{ sitem.company }}
+          <div class="label">总预算:</div>
+          <div class="label-main">{{ sitem.budget_total }}元{{ status }}</div>
+        </li>
+        <li>
+          <div class="label">到货日期:</div>
+          <div class="label-main">{{ sitem.arrtime }}</div>
+        </li>
+        <li>
+          <div class="label">业务员:</div>
+          <div class="label-main">{{ sitem.creater }}</div>
+        </li>
+        <li>
+          <div class="label">购买方:</div>
+          <div class="label-main">{{ sitem.company }}</div>
+        </li>
+        <li>
+          <div class="label">项目编号:</div>
+          <div class="label-main">{{ sitem.projectNo }}</div>
+        </li>
+        <li>
+          <div class="label">项目名称:</div>
+          <div class="label-main">{{ sitem.project_name }}</div>
         </li>
-        <li>项目编号:</li>
-        <li>{{ sitem.projectNo }}</li>
-        <li>项目名称:</li>
-        <li>{{ sitem.project_name }}</li>
-
-        <li>项目用途:</li>
         <li>
-          {{ sitem.use_desc }}
+          <div class="label">项目用途:</div>
+          <div class="label-main">{{ sitem.use_desc }}</div>
         </li>
       </ul>
     </div>
     <div class="right">
       <change-back-good
-        v-if="newTime !== ''"
+        v-if="newTime !== '' && status === '2'"
+        :newTime="newTime"
+        :sitem="sitem"
+        @refresh="initData()"
+      />
+      <show-back-good
+        v-if="newTime !== '' && status === '3'"
         :newTime="newTime"
         :sitem="sitem"
-        @tableChange="tableChange"
+        @refresh="initData()"
       />
     </div>
   </div>
@@ -39,11 +54,13 @@
 import asyncRequest from "@/apis/service/good-share";
 import resToken from "@/mixins/resToken";
 import changeBackGood from "./components/changeBackGood";
+import showBackGood from "./components/showBackGood";
 export default {
   name: "goodShare",
   mixins: [resToken],
   components: {
     changeBackGood,
+    showBackGood,
   },
   data() {
     return {
@@ -109,7 +126,7 @@ export default {
     top: 16px;
     left: 16px;
     z-index: 1;
-    width: 240px;
+    width: 290px;
     min-height: calc(100% - 32px);
     height: calc(100% - 32px);
     background: #fff;
@@ -128,16 +145,24 @@ export default {
       padding: 16px;
       box-sizing: border-box;
       li {
-        line-height: 32px;
         font-size: 14px;
+        width: 100%;
+        float: left;
 
-        &:nth-child(2n + 1) {
-          text-align: left;
+        .label {
           float: left;
+          width: 70px;
+          text-align: right;
+          height: 32px;
+          line-height: 32px;
         }
-        &:nth-child(2n + 2) {
-          width: 100%;
+        .label-main {
+          float: left;
+          width: 188px;
           text-align: right;
+          min-height: 32px;
+          padding: 4px 0;
+          line-height: 24px;
         }
       }
     }
@@ -147,7 +172,7 @@ export default {
     top: 0;
     right: 16px;
     z-index: 1;
-    width: calc(100% - 288px);
+    width: calc(100% - 338px);
     min-height: 100%;
     height: 100%;
     // background: #fff;

+ 4 - 2
src/views/sellOut/project/components/backGoodShow.vue

@@ -91,7 +91,7 @@
                 effect="dark"
                 content="删除"
                 placement="top"
-                v-if="scope.row.data_source === '1'"
+                v-if="scope.row.data_source === '1' && status==='1'"
               >
                 <i
                   class="el-icon-delete tb-icon"
@@ -142,6 +142,7 @@ export default {
       searchItem: {},
       loading: false,
       allList: [],
+      status: "",
       projectNo: "",
       statusOptions: [
         { value: "1", label: "竞品" },
@@ -182,7 +183,8 @@ export default {
     async initListData() {
       console.log(this.sitem);
       this.allList = [];
-      const { projectNo, ladder } = this.sitem;
+      const { projectNo, ladder, status } = this.sitem;
+      this.status = status;
       this.projectNo = projectNo;
       if (ladder && ladder.length > 0) {
         ladder.forEach((e) => {

+ 2 - 13
src/views/sellOut/project/components/columnsForm.js

@@ -24,20 +24,9 @@ export default [
     },
     {
         prop: "model",
-        label: "型号",
-        width: '70px'
-    },
-    {
-        prop: "color",
-        label: "颜色",
-        width: '70px'
+        label: "规格",
+        width: '170px'
     },
-    {
-        prop: "material",
-        label: "材质",
-        width: '70px'
-    },
-
     {
         prop: "expiry_day",
         label: "信息有效期",

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

@@ -0,0 +1,238 @@
+<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 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">
+        <template v-if="tableData">
+          <ex-table
+            v-loading="loading"
+            :table="table"
+            :data="tableData"
+            :columns="columns"
+            :page="pageInfo"
+            :size="'mini'"
+            @page-curr-change="handlePageChange($event)"
+            @page-size-change="handleSizeChange($event)"
+            @screen-reset="
+              pageInfo.curr = 1;
+              page = 1;
+              searchList();
+            "
+            @screen-submit="
+              pageInfo.curr = 1;
+              page = 1;
+              searchList();
+            "
+          >
+            <template #operation="{ scope }">
+              <el-tooltip
+                effect="dark"
+                content="删除"
+                placement="top"
+                v-if="scope.row.data_source === '1'"
+              >
+                <i
+                  class="el-icon-delete tb-icon"
+                  @click="deleteId(scope.row.id)"
+                ></i>
+              </el-tooltip>
+            </template>
+          </ex-table>
+        </template>
+      </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],
+  watch: {
+    // showModel: function (val) {
+    //   this.showModelThis = val;
+    //   if (val) {
+    //     this.initForm();
+    //   }
+    // },
+    // showModelThis(val) {
+    //   if (!val) {
+    //     this.$emit("cancel");
+    //   }
+    // },
+  },
+  data() {
+    return {
+      showModel: false,
+      searchItem: {},
+      loading: false,
+      ladder: [],
+      //   allList: [],
+      projectNo: "",
+      statusOptions: [
+        { value: "1", label: "竞品" },
+        { value: "2", label: "竞聘" },
+      ],
+      table: {
+        stripe: true,
+        border: true,
+        // _defaultHeader_: ["setcol"],
+      },
+      // 表格 - 列参数
+      columns: columnsForm,
+    };
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    //初始化整个组件
+    async initForm() {
+      this.loading = true;
+      await this.initListData();
+      this.loading = false;
+    },
+    async resetFormData() {
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.loading = true;
+      this.tableData = [];
+      await this.searchList();
+    },
+    //初始化整个组件
+    async initListData() {
+      console.log(this.sitem);
+      const { projectNo, ladder } = this.sitem;
+      this.projectNo = projectNo;
+      this.ladder = JSON.parse(JSON.stringify(ladder));
+      this.pageInfo = {
+        size: 15,
+        curr: 1,
+        total: 0,
+      };
+      this.tableData = [];
+      await  this.searchList()
+    },
+    //页数选择
+    async handlePageChange(e) {
+      this.pageInfo.curr = e;
+      await this.searchList();
+    },
+    //页面条数选择
+    async handleSizeChange(e) {
+      this.pageInfo.curr = 1;
+      this.pageInfo.size = e;
+      await this.searchList();
+    },
+    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;
+    },
+  },
+};
+</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;
+    }
+  }
+}
+</style>

+ 17 - 4
src/views/sellOut/project/detail.vue

@@ -49,7 +49,18 @@
             @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'">
+          <set-plan
+            :id="queryId"
+            v-if="newTime !== ''"
+            :newTime="newTime"
+            :type="queryType"
+            :sitem="sitem"
+            @refresh="initForm()"
+          />
+        </el-tab-pane>
+
+        <el-tab-pane label="审批记录" name="4" v-if="queryType !== 'add'">
           111
         </el-tab-pane>
       </el-tabs>
@@ -66,6 +77,7 @@ import { mapGetters } from "vuex";
 import addForm from "./components/addForm";
 import grossForm from "./components/grossForm";
 import backGoodShow from "./components/backGoodShow";
+import setPlan from "./components/setPlan";
 // import financeExamOneForm from "./components/finance-exam-one-form";
 // import financeExamTwoForm from "./components/finance-exam-two-form";
 // import financeExamThreeForm from "./components/finance-exam-three-form";
@@ -76,6 +88,7 @@ export default {
     addForm,
     grossForm,
     backGoodShow,
+    setPlan,
     // financeExamOneForm,
     // financeExamTwoForm,
     // financeExamThreeForm,
@@ -99,7 +112,7 @@ export default {
     return {
       statusList: [],
       size: "small",
-      projectTabs: "2",
+      projectTabs: "4",
       projectNames: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
       newTime: "",
       loading: false,
@@ -117,7 +130,7 @@ export default {
       const { id, type } = this.$route.query;
       this.queryId = id;
       this.queryType = type;
-      this.projectTabs = type === "add" ? "0" : "2";
+      this.projectTabs = type === "add" ? "0" : "3";
       this.loading = true;
       if (this.queryType === "add") {
         this.sitem = {};
@@ -208,7 +221,7 @@ export default {
   width: 100%;
   box-sizing: border-box;
   .projectDetail-main {
-    overflow-y: scroll;
+    // overflow-y: scroll;
     position: relative;
     padding: 10px;
     height: 100%;

+ 31 - 5
src/views/serviceParam/supplier/components/baseForm.vue

@@ -254,7 +254,7 @@
       <el-col :span="24"
         ><div class="supplierAdd-title">联系人信息</div></el-col
       >
-      <el-col :span="8">
+      <el-col :span="6">
         <el-form-item label="姓名" prop="contactor">
           <el-input
             v-model="ruleForm.contactor"
@@ -264,7 +264,7 @@
           />
         </el-form-item>
       </el-col>
-      <el-col :span="8">
+      <el-col :span="6">
         <el-form-item label="手机号" prop="mobile">
           <el-input
             v-model="ruleForm.mobile"
@@ -274,7 +274,17 @@
           />
         </el-form-item>
       </el-col>
-      <el-col :span="8">
+      <el-col :span="6">
+        <el-form-item label="座机号" prop="telephone">
+          <el-input
+            v-model="ruleForm.telephone"
+            :disabled="type !== 'add' && type !== 'edit'"
+            placeholder="手机号"
+            minlength="20"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
         <el-form-item label="职位" prop="position">
           <el-input
             v-model="ruleForm.position"
@@ -394,7 +404,7 @@
 <script>
 import asyncRequest from "@/apis/service/serviceParam/supplier";
 import resToken from "@/mixins/resToken";
-import { isLicense, isMobile } from "@/utils/validate";
+import { isLicense, isMobile, isqz } from "@/utils/validate";
 
 export default {
   name: "supplierAdd",
@@ -423,7 +433,17 @@ export default {
         }
       }
     };
-
+    const validatetelephone = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("座机号不能为空!"));
+      } else {
+        if (isqz(value)) {
+          callback();
+        } else {
+          callback(new Error("规则为区号[0+2~3位]-固定电话[7~8位]!"));
+        }
+      }
+    };
     return {
       loading: false,
       hand_name: "",
@@ -456,6 +476,7 @@ export default {
         { value: "4", label: "电商平台" },
       ],
       leveloptions: [
+        { value: "2", label: "生产厂家" },
         { value: "0", label: "一级代理商" },
         { value: "1", label: "二级代理商" },
       ],
@@ -522,6 +543,9 @@ export default {
         mobile: [
           { required: true, validator: validatemobile, trigger: "blur" },
         ],
+        telephone: [
+          { required: true, validator: validatetelephone, trigger: "blur" },
+        ],
         position: [
           { required: true, message: "职位不能为空", trigger: "blur" },
         ],
@@ -596,6 +620,7 @@ export default {
         scope,
         personid,
         person,
+        telephone,
       } = this.sitem;
       this.hand_name = person || "";
       this.ruleForm = {
@@ -612,6 +637,7 @@ export default {
         prove_img: prove_img ? (prove_img || "").split(",") : [],
         contactor: contactor || "",
         mobile: mobile || "",
+        telephone:telephone||'',
         position: position || "",
         registercode: registercode || "",
         name: name || "",