戴艳蓉 3 years ago
parent
commit
a95009c391

+ 4 - 0
src/apis/service/sellOut/project/index.js

@@ -31,4 +31,8 @@ export default {
   project_make_plan: (data, params) => http(api + "plancreate", data, "post", params),
   // 查询方案列表
   get_project_plan: (data, params) => http(api + "projectplan", data, "post", params),
+  // 项目下单
+  project_place_order: (data, params) => http(api + "projectorder", data, "post", params),
+  // 区编码获取省市区汉字
+  addrall: (data, params) => http(api + "addrall", data, "post", params),
 };

+ 65 - 0
src/views/sellOut/project/components/ShowDataTableColumns.js

@@ -0,0 +1,65 @@
+
+
+const editColumns = [
+  {
+    prop: "infoNo",
+    label: "咨询单编号",
+    span: 6
+  },
+  {
+    prop: "status",
+    label: "状态",
+    _slot_: "status",
+    span: 5
+  },
+
+  {
+    prop: "addtime",
+    label: "创建时间",
+    span: 6
+  },
+  {
+    prop: "departinfo",
+    label: "创建人",
+    _slot_: "departinfo",
+    span: 7
+  },
+]
+
+const ShowDataTableColumns = [
+  {
+    prop: "in_company",
+    label: "业务企业",
+  },
+  {
+    prop: "in_khname",
+    label: "客户企业",
+  },
+
+  {
+    prop: "in_platform_name",
+    label: "所属平台",
+    span: 8,
+  },
+
+  {
+    prop: "in_arrival_time",
+    label: "要求到货日期",
+    span: 6,
+  },
+  {
+    prop: "in_project_name",
+    label: "项目名称",
+    span: 10,
+  },
+]
+
+
+
+
+
+export {
+  editColumns, ShowDataTableColumns
+}
+
+

+ 761 - 0
src/views/sellOut/project/components/buyGoodModal.vue

@@ -0,0 +1,761 @@
+<template>
+  <el-dialog
+    :title="'项目下单'"
+    :center="true"
+    align="left"
+    top="5vh"
+    width="1040px"
+    @close="showModelThis = false"
+    :close-on-click-modal="false"
+    :visible.sync="showModelThis"
+    v-loading="loading"
+    element-loading-text="拼命加载中"
+    element-loading-spinner="el-icon-loading"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+    append-to-body
+  >
+    <el-card style="margin-top: -20px">
+      <el-row>
+        <el-col :span="24">
+          <show-data-table
+            style="margin: 0; padding: 0"
+            :newTime="newTime"
+            v-if="newTime !== '' && sitem"
+            :sitem="sitem"
+            :columns="ShowDataTableColumns"
+          />
+        </el-col>
+        <el-col :span="24" style="padding: 10px 0 0 0">
+          <span>商品下单:</span>
+          <el-button-group :size="'mini'" class="fr" 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="prev_goods()"
+            ></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"
+              v-if="total !== 0"
+              @click="next_goods()"
+              :size="'mini'"
+              ><i class="el-icon-arrow-right el-icon--right" :size="'mini'"></i
+            ></el-button>
+          </el-button-group>
+        </el-col>
+        <el-col :span="24">
+          <el-table
+            :data="order_good"
+            border
+            :size="'mini'"
+            style="width: 100%"
+            row-key="key"
+          >
+            <el-table-column
+              prop="good_name"
+              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="商品名称"
+              min-width="120"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="model"
+              label="规格"
+              width="120"
+              show-overflow-tooltip
+            >
+            </el-table-column>
+            <el-table-column
+              prop="brand_name"
+              label="品牌"
+              width="110"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="sale_price"
+              label="单价"
+              width="110"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="num"
+              label="数量"
+              width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="sendtype"
+              label="发货方式"
+              width="150"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-select
+                  v-model="scope.row.sendtype"
+                  placeholder="发货方式"
+                  :size="'mini'"
+                  @change="sendtype_change($event, scope.$index)"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item in options"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-col>
+        <el-col :span="24" v-if="sendtype === '1'" style="padding: 15px 0 0 0">
+          <el-form :model="addrForm" ref="addrForm" :size="'mini'">
+            <el-table
+              :data="addrForm.order_addr"
+              border
+              :size="'mini'"
+              style="width: 100%"
+              max-height="300px"
+              row-key="key"
+            >
+              <el-table-column type="index" width="80" show-overflow-tooltip />
+              <el-table-column
+                prop="receipt_quantity"
+                label="收货总数"
+                min-width="125"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-form-item
+                    v-if="scope.row.edit"
+                    :prop="
+                      'order_addr.' + scope.$index + '.' + 'receipt_quantity'
+                    "
+                    :rules="addrRules.receipt_quantity"
+                    :size="'mini'"
+                    :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+                  >
+                    <el-input
+                      v-model="scope.row.receipt_quantity"
+                      :disabled="!scope.row.edit"
+                    />
+                  </el-form-item>
+                  <span v-if="!scope.row.edit">{{
+                    scope.row.receipt_quantity
+                  }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="contactor"
+                label="收件联系人"
+                min-width="110"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-form-item
+                    v-if="scope.row.edit"
+                    :prop="'order_addr.' + scope.$index + '.' + 'contactor'"
+                    :rules="addrRules.contactor"
+                    :size="'mini'"
+                    :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+                  >
+                    <el-input
+                      v-model="scope.row.contactor"
+                      :disabled="!scope.row.edit"
+                    />
+                  </el-form-item>
+                  <span v-if="!scope.row.edit">{{ scope.row.contactor }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="mobile"
+                label="收货联系电话"
+                min-width="130"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-form-item
+                    v-if="scope.row.edit"
+                    :prop="'order_addr.' + scope.$index + '.' + 'mobile'"
+                    :rules="addrRules.mobile"
+                    :size="'mini'"
+                    :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+                  >
+                    <el-input
+                      v-model="scope.row.mobile"
+                      :disabled="!scope.row.edit"
+                    />
+                  </el-form-item>
+                  <span v-if="!scope.row.edit">{{ scope.row.mobile }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="addr_code"
+                label="收货省市区"
+                min-width="230"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-form-item
+                    v-if="scope.row.edit"
+                    :prop="'order_addr.' + scope.$index + '.' + 'addr_code'"
+                    :rules="addrRules.addr_code"
+                    :size="'mini'"
+                    :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+                  >
+                    <select-area
+                      :value="scope.row.addr_code"
+                      :disabled="!scope.row.edit"
+                      :size="'mini'"
+                      @selectChange="select_area_change($event, scope.$index)"
+                    />
+                  </el-form-item>
+                  <span v-if="!scope.row.edit">{{
+                    scope.row.addr_code_name
+                  }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="addr"
+                label="详细地址"
+                min-width="170"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-form-item
+                    v-if="scope.row.edit"
+                    :prop="'order_addr.' + scope.$index + '.' + 'addr'"
+                    :rules="addrRules.addr"
+                    :size="'mini'"
+                    :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
+                  >
+                    <el-input
+                      v-model="scope.row.addr"
+                      :disabled="!scope.row.edit"
+                    />
+                  </el-form-item>
+                  <span v-if="!scope.row.edit">{{ scope.row.addr }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column fixed="right" width="94" show-overflow-tooltip>
+                <template slot="header" slot-scope="scope">
+                  <el-tooltip
+                    class="fr"
+                    style="margin: 3px 0 0 8px"
+                    effect="dark"
+                    content="手动添加地址"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-circle-plus-outline tb-icon"
+                      style="color: #63cbe7"
+                      @click="openHouseModal(-1)"
+                    ></i>
+                  </el-tooltip>
+                  <el-tooltip
+                    class="fr"
+                    style="margin: 3px 0 0 8px"
+                    effect="dark"
+                    content="导入收货地址"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-upload2 tb-icon"
+                      style="color: #63cbe7"
+                      @click="addrmodel = true"
+                    ></i>
+                  </el-tooltip>
+                  <el-tooltip
+                    class="fr"
+                    style="margin: 3px 0 0 0"
+                    effect="dark"
+                    content="下载收货地址模板"
+                    placement="top"
+                  >
+                    <a class="downloadAddr" href="./static/收货地址模板.xlsx">
+                      <i
+                        class="el-icon-download tb-icon"
+                        style="color: #63cbe7; margin: 0"
+                      ></i>
+                    </a>
+                  </el-tooltip>
+                </template>
+                <template slot-scope="scope">
+                  <el-tooltip
+                    effect="dark"
+                    content="编辑"
+                    v-if="!scope.row.edit"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-edit tb-icon"
+                      @click="openHouseModal(scope.$index)"
+                    ></i>
+                  </el-tooltip>
+
+                  <el-tooltip
+                    effect="dark"
+                    content="保存"
+                    v-if="scope.row.edit"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-circle-check tb-icon"
+                      @click="checkRow(scope.$index)"
+                    ></i>
+                  </el-tooltip>
+
+                  <el-tooltip effect="dark" content="删除" placement="top">
+                    <i
+                      class="el-icon-delete tb-icon"
+                      @click="deleteRow(scope.$index, addrForm.order_addr)"
+                    ></i>
+                  </el-tooltip>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-form>
+        </el-col>
+        <el-col :span="24">
+          <in-addr-model
+            :show-model="addrmodel"
+            @cancel="addrmodel = false"
+            @refresh="addrRefresh"
+          />
+        </el-col>
+      </el-row>
+    </el-card>
+  </el-dialog>
+</template>
+   <script>
+import resToken from "@/mixins/resToken";
+import asyncRequest from "@/apis/service/sellOut/project";
+import searchStockGoodModal from "@/components/search-stock-good-modal";
+import { isnumber, isMobile } from "@/utils/validate";
+import inAddrModel from "@/components/in-addr-model";
+import { ShowDataTableColumns } from "./ShowDataTableColumns";
+export default {
+  name: "buyGoodModal",
+  props: ["showModel", "sitem"],
+  mixins: [resToken],
+  components: { searchStockGoodModal, inAddrModel },
+  data() {
+    const validatemobile = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("手机号不能为空!"));
+      } else {
+        if (!isMobile(value)) {
+          callback(new Error("手机号格式不正确!"));
+        } else {
+          callback();
+        }
+      }
+    };
+    const validateWeight = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("收货总数不能为空!"));
+      } else {
+        if (!isnumber(value)) {
+          callback(new Error("收货总数仅支持整数!"));
+        } else {
+          callback();
+        }
+      }
+    };
+    return {
+      loading: false,
+      addrmodel: false,
+      showModelThis: this.showModel,
+      showGoodsModel: false,
+      ShowDataTableColumns: ShowDataTableColumns,
+      planNo: "",
+      arrtime: "",
+      project_list: [],
+      options: [
+        {
+          value: "1",
+          label: "直接发货",
+        },
+        {
+          value: "2",
+          label: "延时发货",
+        },
+      ],
+      index: 0,
+      total: 0,
+      order_good: [],
+      sendtype: "1",
+      addrForm: {
+        order_addr: [], //收货地址
+      },
+      addrRules: {
+        receipt_quantity: [
+          {
+            required: true,
+            validator: validateWeight,
+            trigger: "blur",
+          },
+        ],
+
+        contactor: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "联系人不能为空",
+          },
+        ],
+        mobile: [
+          {
+            required: true,
+            validator: validatemobile,
+            trigger: "blur",
+          },
+        ],
+
+        addr_code: [
+          {
+            type: "array",
+            required: true,
+            message: "收货省市区不能为空",
+            trigger: "change",
+          },
+        ],
+        addr: [
+          {
+            required: true,
+            message: "详细地址不能为空",
+            trigger: "blur",
+          },
+        ],
+      },
+
+      loading: false,
+      id: "",
+    };
+  },
+  watch: {
+    showModel: function (val) {
+      this.showModelThis = val;
+      if (val) {
+        this.initForm();
+      }
+    },
+    showModelThis(val) {
+      if (!val) {
+        this.$emit("cancel");
+      }
+    },
+  },
+  methods: {
+    closeModel() {
+      console.log("closeModel!!");
+      this.showModelThis = false;
+    },
+
+    async initForm() {
+      this.loading = true;
+      this.project_list = [];
+      console.log(this.sitem);
+      const { planNo, in_arrival_time, feedback } = this.sitem;
+      this.planNo = planNo || "";
+      this.arrtime = in_arrival_time || "";
+      let goods = JSON.parse(JSON.stringify(feedback));
+      if (goods && goods.length > 0) {
+        goods.forEach((e) => {
+          e.sendtype = "1";
+          let model = JSON.parse(JSON.stringify(e));
+          let item = {
+            order_good: [model],
+            order_addr: [],
+          };
+          this.project_list.push(item);
+        });
+      }
+      this.index = 0;
+      this.total = this.project_list.length;
+      await this.resetForm(this.index);
+      this.getNewTime();
+      this.loading = false;
+    },
+    addrRefresh(e) {
+      const { list } = e;
+      this.addrForm.order_addr.push(...list);
+    },
+    async prev_goods() {
+      this.index--;
+      await this.resetForm(this.index);
+    },
+    async next_goods() {
+      const { order_addr } = this.addrForm;
+      if (this.sendtype === "1" && order_addr && order_addr.length === 0) {
+        this.$message.warning("直接发货需要录入地址!");
+        return;
+      }
+      let isedit = false;
+      order_addr.forEach((e) => {
+        if (e.edit) {
+          isedit = true;
+        }
+      });
+      if (isedit) {
+        this.$message.warning("当前已有地址在编辑,请保存后再试!");
+        return;
+      }
+
+      console.log(this.sendtype);
+      this.project_list[this.index].order_good[0].sendtype = this.sendtype;
+      this.project_list[this.index].order_addr =
+        this.addrForm.order_addr.length === 0
+          ? []
+          : JSON.parse(JSON.stringify(this.addrForm.order_addr));
+      console.log(this.project_list[this.index].order_good[0].sendtype);
+      if (this.index + 1 === this.total) {
+        this.submitForm();
+      } else {
+        this.index++;
+
+        await this.resetForm(this.index);
+      }
+    },
+
+    getNewTime() {
+      this.newTime = new Date().valueOf();
+    },
+    sendtype_change(e, index) {
+      this.order_good[index].sendtype = e;
+      this.sendtype = this.order_good[index].sendtype;
+    },
+
+    async resetForm(index) {
+      //重置
+      await this.$nextTick(() => {
+        if (this.$refs.addrForm) {
+          this.$refs.addrForm.resetFields();
+          this.$refs.addrForm.clearValidate();
+        }
+        let list1 = this.project_list[index].order_good;
+        this.order_good =
+          list1.length > 0 ? JSON.parse(JSON.stringify(list1)) : [];
+        let list2 = this.project_list[index].order_addr;
+        this.addrForm.order_addr =
+          list2.length > 0 ? JSON.parse(JSON.stringify(list2)) : [];
+        this.sendtype = this.order_good[0].sendtype;
+      });
+    },
+    openHouseModal(index) {
+      let findex = this.addrForm.order_addr.findIndex((v) => v.edit === true);
+      if (findex !== -1) {
+        this.$message.warning("当前已有地址在编辑,请保存后再试!");
+        return;
+      } else {
+        if (index === -1) {
+          this.addrForm.order_addr.push({
+            edit: true,
+            receipt_quantity: "",
+            contactor: "",
+            mobile: "",
+            addr_code: [],
+            addr: "",
+          });
+        } else {
+          this.addrForm.order_addr[index].edit = true;
+        }
+      }
+    },
+    //省市区选择
+    async select_area_change(e, index) {
+      this.addrForm.order_addr[index].addr_code = e;
+      const { addr_code } = this.addrForm.order_addr[index];
+      if (addr_code && addr_code.length === 3) {
+        let arrCode = addr_code[addr_code.length - 1];
+        // console.log(model);
+        let { code, data, message } = await asyncRequest.addrall({
+          code: arrCode,
+        });
+        if (code === 0) {
+          const { province, city, area } = data;
+          let province_name = province && province.name ? province.name : "";
+          let city_name = city && city.name ? city.name : "";
+          let area_name = area && area.name ? area.name : "";
+          this.addrForm.order_addr[index].addr_code_name =
+            province_name && city_name && area_name
+              ? `${province_name}/${city_name}/${area_name}`
+              : "";
+        } else if (code >= 100 && code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(message);
+        }
+      } else {
+        this.addrForm.order_addr[index].addr_code_name = "";
+      }
+    },
+    //省市区保存某一行
+    checkRow(rowIndex) {
+      this.$refs.addrForm.validate((valid) => {
+        if (valid) {
+          this.addrForm.order_addr[rowIndex].edit = false;
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    // 省市区删除行操作
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+    async submitForm() {
+      this.loading = true;
+      let model = {
+        planNo: this.planNo,
+        arrtime: this.arrtime,
+        planinfo: [],
+      };
+      this.project_list.forEach((e) => {
+        const { order_good, order_addr } = e;
+        const { id, sendtype } = JSON.parse(JSON.stringify(order_good[0]));
+        let modelA = {
+          feedback_id: id || "",
+          sendtype: sendtype || "2",
+          addrlist: [],
+        };
+        order_addr.forEach((a) => {
+          let modelB = {
+            addr_code: a.addr_code.toString(),
+            contactor: a.contactor,
+            mobile: a.mobile,
+            addr: a.addr,
+            receipt_quantity: a.receipt_quantity,
+          };
+          modelA.addrlist.push(modelB);
+        });
+        model.planinfo.push(modelA);
+      });
+      let res = await asyncRequest.project_place_order(model);
+      this.loading = false;
+      if (res && res.code === 0) {
+        this.$notify.success({
+          title: "下单成功!",
+          message: "",
+        });
+        this.showModelThis = false;
+        // 刷新
+        this.$emit("refresh");
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+    },
+  },
+};
+</script>
+
+   
+   <style lang="scss" scoped>
+// .capitalClaim {
+.excelUploadBox {
+  position: relative;
+  width: 100%;
+  height: 120px;
+  line-height: 120px;
+  box-sizing: border-box;
+  &:hover {
+    cursor: pointer;
+  }
+  .el-icon-receiving {
+    width: 100%;
+    text-align: center;
+    height: 50px;
+    display: block;
+    font-size: 32px;
+    line-height: 90px;
+    color: #d3d4d6;
+  }
+  .boxM {
+    width: 100%;
+    display: block;
+    text-align: center;
+    line-height: 65px;
+    height: 60px;
+    color: #909399;
+  }
+}
+.excelUpload {
+  top: 0;
+  left: 0;
+  position: absolute;
+  z-index: 2;
+  width: 100%;
+  height: 120px;
+  line-height: 120px;
+  box-sizing: border-box;
+}
+.excelUploadRes {
+  width: 100%;
+  height: 120px;
+  line-height: 120px;
+  box-sizing: border-box;
+  i {
+    width: 55px;
+    height: 120px;
+    line-height: 120px;
+    text-align: center;
+    font-size: 20px;
+    &.fl {
+      padding-left: 16px;
+    }
+    &.fr {
+      padding-right: 16px;
+      &:hover {
+        cursor: pointer;
+      }
+    }
+  }
+  span {
+    width: 386px;
+    line-height: 16px;
+    margin: 52px 0 0 0;
+    font-size: 16px;
+  }
+}
+// }
+</style>

+ 1 - 1
src/views/sellOut/project/components/columnsForm.js

@@ -3,7 +3,7 @@ export default [
     {
         prop: "pgNo",
         label: "要求编号",
-        width: '180px'
+        width: '155px'
     },
 
     {

+ 2 - 2
src/views/sellOut/project/components/grossForm.vue

@@ -143,11 +143,11 @@ export default {
         if (this.$refs.ruleForm) {
           this.$refs.ruleForm.resetFields();
           this.$refs.ruleForm.clearValidate();
-          const { rate, projectNo, status } = this.sitem;
+          const { low_rate, projectNo, status } = this.sitem;
           this.status = status || "";
           this.ruleForm = {
             projectNo: projectNo || "",
-            rate: rate || "0",
+            rate: low_rate || "0",
           };
         }
       });

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

@@ -1,664 +0,0 @@
-<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>

+ 110 - 33
src/views/sellOut/project/components/setPlan.vue

@@ -11,7 +11,7 @@
             stripe
             style="width: 100%"
           >
-            <el-table-column label="要求编码" prop="pgNo" width="180px" />
+            <el-table-column label="要求编码" prop="pgNo" width="155px" />
 
             <el-table-column prop="good_type" label="商品类型" width="80px">
               <template slot-scope="scope">
@@ -70,11 +70,11 @@
           <el-table-column
             prop="pgNo"
             label="要求编码"
-            width="180px"
+            width="155px"
             show-overflow-tooltip
           />
           <el-table-column
-            prop="sale_price"
+            prop="origin_price"
             label="销售单价"
             width="110"
             show-overflow-tooltip
@@ -126,21 +126,23 @@
           <el-table-column
             prop="work_day"
             label="制作工期"
-            width="85"
+            width="70"
             show-overflow-tooltip
           />
           <el-table-column
             prop="delivery_day"
             label="物流时间"
-            width="85"
+            width="70"
             show-overflow-tooltip
           />
         </el-table>
       </div>
       <div class="project-setPlan-title">
-        方案制定
+        项目方案
         <span v-if="total !== 0 && table_type === 'list'"
-          >方案总金额:{{ plan_show.sale_total }}元</span
+          >{{ plan_show.status === "1" ? "已选定" : "" }}方案总金额:{{
+            plan_show.sale_total
+          }}元</span
         >
         <el-button-group
           :size="'mini'"
@@ -148,6 +150,28 @@
           v-if="table_type === 'list'"
           style="margin: 8px 0 0 0"
         >
+          <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'"
+            >添加方案
+          </el-button>
+          <el-button
+            type="primary"
+            class="fr"
+            v-if="plan_show.status === '1'"
+            @click="place_order"
+            :size="'mini'"
+            >项目下单<i class="el-icon-shopping-cart-2 el-icon--right"></i>
+          </el-button>
           <el-button
             class="fr"
             type="primary"
@@ -174,20 +198,6 @@
             :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' || status == '4')
-            "
-            @click="add_plan"
-            icon="el-icon-circle-plus-outline"
-            :size="'mini'"
-            >添加方案
-          </el-button>
         </el-button-group>
         <el-button-group
           :size="'mini'"
@@ -220,7 +230,7 @@
           <el-table-column
             prop="pgNo"
             label="要求编码"
-            width="180px"
+            width="155px"
             show-overflow-tooltip
           />
           <el-table-column
@@ -241,24 +251,49 @@
                 v-if="table_type === 'add'"
                 :values="scope.row.new_sale_price"
                 :placeholder="'售价'"
-                :min="0"
+                :min="scope.row.origin_price"
                 :max="100000000000"
                 :position="'right'"
                 :precision="0"
                 :size="'mini'"
                 :controls="false"
                 :append="''"
-                @reschange="moq_num_change($event, scope.$index)"
+                @reschange="
+                  moq_num_change($event, scope.$index, 'new_sale_price')
+                "
               />
               <span v-else>{{ scope.row.sale_price }}元</span>
             </template>
           </el-table-column>
+          <el-table-column
+            prop="origin_num"
+            label="咨询数量"
+            width="110"
+            show-overflow-tooltip
+          />
           <el-table-column
             prop="num"
             label="购买数量"
             width="110"
             show-overflow-tooltip
-          />
+          >
+            <template slot-scope="scope">
+              <digital-input
+                v-if="table_type === 'add'"
+                :values="scope.row.origin_num"
+                :placeholder="'购买数量'"
+                :min="scope.row.origin_num"
+                :max="100000000000"
+                :position="'right'"
+                :precision="0"
+                :size="'mini'"
+                :controls="false"
+                :append="''"
+                @reschange="moq_num_change($event, scope.$index, 'num')"
+              />
+              <span v-else>{{ scope.row.num }}</span>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="good_img"
             label="图片"
@@ -300,17 +335,23 @@
           <el-table-column
             prop="work_day"
             label="制作工期"
-            width="85"
+            width="70"
             show-overflow-tooltip
           />
           <el-table-column
             prop="delivery_day"
             label="物流时间"
-            width="85"
+            width="70"
             show-overflow-tooltip
           />
         </el-table>
       </div>
+      <buy-good-modal
+        :showModel="bayGoodShowModel"
+        :sitem="bayGoodItem"
+        @cancel="bayGoodShowModel = false"
+        @refresh="(bayGoodShowModel = false), $emit('resGoodOk')"
+      />
     </div>
   </div>
 </template>
@@ -318,10 +359,14 @@
 import asyncRequest from "@/apis/service/sellOut/project";
 import resToken from "@/mixins/resToken";
 import columnsForm from "./columnsForm";
+import buyGoodModal from "./buyGoodModal";
 export default {
   name: "setPlan",
   props: ["showModel", "sitem", "id", "type"],
   mixins: [resToken],
+  components: {
+    buyGoodModal,
+  },
   computed: {
     powers() {
       let tran =
@@ -354,6 +399,8 @@ export default {
       searchItem: {},
       loading: false,
       allPlanList: [],
+      bayGoodItem: {},
+      bayGoodShowModel: false,
       ladder: [],
       index: 0,
       total: 0,
@@ -391,6 +438,20 @@ export default {
       await this.back_list();
       this.loading = false;
     },
+    //项目下单
+    place_order() {
+      const { company, khName, platform_name, arrtime, project_name } =
+        this.sitem;
+      this.bayGoodItem = JSON.parse(
+        JSON.stringify(this.allPlanList[this.index])
+      );
+      this.bayGoodItem.in_company = company;
+      this.bayGoodItem.in_khname = khName;
+      this.bayGoodItem.in_platform_name = platform_name;
+      this.bayGoodItem.in_arrival_time = arrtime;
+      this.bayGoodItem.in_project_name = project_name;
+      this.bayGoodShowModel = true;
+    },
     async resetFormData() {
       this.pageInfo = {
         size: 15,
@@ -406,14 +467,20 @@ export default {
       await this.get_plan("1");
     },
     add_plan() {
+      const { low_rate } = this.sitem;
+      let r = low_rate ? low_rate : "0";
+      if (r === 0) {
+        this.$message.warning("暂无项目毛利率,不能制定方案!");
+        return;
+      }
       this.table_type = "add";
       this.plan_show = {
         sale_total: "0",
         feedback: [],
       };
     },
-    moq_num_change(e, index) {
-      this.plan_show.feedback[index].new_sale_price = e + "";
+    moq_num_change(e, index, key) {
+      this.plan_show.feedback[index][key] = e + "";
       this.$set(
         this.plan_show.feedback[index],
         index,
@@ -437,7 +504,6 @@ export default {
     },
     handleSelectionChange(val) {
       this.multipleSelection = val;
-
       let list = JSON.parse(JSON.stringify(this.plan_show.feedback));
       this.plan_show = {
         sale_total: "0",
@@ -454,7 +520,9 @@ export default {
         }
       });
       this.plan_show.feedback.map((e) => {
-        e.new_sale_price = "0";
+        console.log(e.sale_price);
+        e.new_sale_price = e.sale_price;
+        e.origin_num = e.num;
         return e;
       });
     },
@@ -498,7 +566,6 @@ export default {
     async save_plan() {
       if (!this.loading) {
         const { feedback } = this.plan_show;
-        console.log(feedback);
         let list = feedback;
         let isok = true;
         list.forEach((a) => {
@@ -539,6 +606,7 @@ export default {
           let si = {
             feedid: e.id,
             sale_price: e.new_sale_price,
+            good_num: e.num,
           };
           model.feedback.push(si);
         });
@@ -580,16 +648,25 @@ export default {
       this.table_type = "list";
       this.plan_show = {
         sale_total: "0",
+        status: "0",
         feedback: [],
       };
       if (type) {
         this.index = 0;
       }
-      const { sale_total, feedback } = JSON.parse(
+      if (this.status === "4") {
+        this.allPlanList.forEach((a, ai) => {
+          if (a.status === "1") {
+            this.index = ai;
+          }
+        });
+      }
+      const { sale_total, feedback, status } = JSON.parse(
         JSON.stringify(this.allPlanList[this.index])
       );
       this.plan_show = {
         sale_total: sale_total,
+        status: status,
         feedback: JSON.parse(JSON.stringify(feedback)),
       };
       console.log(this.plan_show);

+ 3 - 10
src/views/sellOut/zixunOrder/components/buyGoodModal.vue

@@ -107,7 +107,7 @@
             </el-row>
           </el-form>
         </el-col>
-        <el-col :span="24" v-if="ruleForm.sendtype === '2'">
+        <el-col :span="24" v-if="ruleForm.sendtype === '1'">
           <el-form :model="addrForm" ref="addrForm" :size="'mini'">
             <el-table
               :data="addrForm.order_addr"
@@ -410,13 +410,6 @@ export default {
         order_addr: [], //收货地址
       },
       addrRules: {
-        arrive_time: [
-          {
-            required: true,
-            message: "最晚收货日期不能为空",
-            trigger: "change",
-          },
-        ],
         receipt_quantity: [
           {
             required: true,
@@ -631,7 +624,7 @@ export default {
             this.loading = false;
             return;
           }
-          if (parseInt(good_num + "") !== addrT) {
+          if (parseInt(good_num + "") !== addrT && sendtype === "2") {
             this.$message.warning("收货总数量与购买不一致!");
             this.loading = false;
             return;
@@ -641,7 +634,7 @@ export default {
           this.loading = false;
           if (res && res.code === 0) {
             this.$notify.success({
-              title: "添加成功",
+              title: "下单成功!",
               message: "",
             });
             this.showModelThis = false;

+ 1 - 0
src/views/sellOut/zixunOrder/components/feedbackList.vue

@@ -374,6 +374,7 @@ export default {
       this.bayGoodItem.in_arrival_time = arrival_time;
       this.bayGoodItem.in_num = num;
       this.bayGoodShowModel = true;
+      
       // console.log(row);
     },
     // 时间选择事件