yangfeng
2023-07-19 23d80c1b64f23ede237ab8e89ebc2ee2aaf43f26
销售模块接口联调
4 文件已重命名
34个文件已修改
3124 ■■■■■ 已修改文件
src/api/service/orderManage.js 补丁 | 查看 | 原始文档 | blame | 历史
src/api/service/serviceContract.js 补丁 | 查看 | 原始文档 | blame | 历史
src/api/service/serviceFeeManage.js 补丁 | 查看 | 原始文档 | blame | 历史
src/api/service/serviceFollowup.js 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/CommonFormTableView.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/TableCommonView.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/AddClientManageDialog.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/AddContactsDialog.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/index.vue 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/AddFollowupRecordsDialog.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/AddContractManageDialog.vue 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/generatePlan/AddGeneratePlanDialog.vue 143 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/generatePlan/index.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/AddMasterOrderDialog.vue 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/index.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/AddQuotationDialog.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/AddRefundFormDialog.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/index.vue 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/AddSalesDetailsDialog.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/index.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue 544 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/index.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/AddSalesReturnDialog.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/index.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/AddSubOrderDialog.vue 165 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/orderManage/AddOrderManageDialog.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/orderManage/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/AddServiceContractDialog.vue 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/index.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFeeManage/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFollowup/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/service/orderManage.js
src/api/service/serviceContract.js
src/api/service/serviceFeeManage.js
src/api/service/serviceFollowup.js
src/components/makepager/CommonFormTableView.vue
@@ -30,7 +30,7 @@
              :prop="'tableData.' + scope.$index + '.' + item.prop"
              :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]"
            >
              <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input>
              <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini" disabled></el-input>
            </el-form-item>
            <el-form-item
              v-else-if="item.date"
@@ -39,7 +39,7 @@
              :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]"
            >
              <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> -->
              <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
              <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px" disabled>
              </el-date-picker>
            </el-form-item>
            <span v-else>{{ scope.row[item.prop] }}</span>
@@ -48,10 +48,10 @@
      </el-table>
    </el-form>
    <div style="margin: 10px">
      <el-button size="small" type="primary">新增</el-button>
      <el-button size="small" type="primary">导入明细</el-button>
      <el-button size="small" type="primary">清空</el-button>
      <el-button size="small" type="primary">重算</el-button>
      <el-button size="small" type="primary" disabled>新增</el-button>
      <el-button size="small" type="primary" disabled>导入明细</el-button>
      <el-button size="small" type="primary" disabled>清空</el-button>
      <el-button size="small" type="primary" disabled>重算</el-button>
    </div>
    <div v-if="showSummary.total || showSummary.refundable" style="height: 42px; line-height: 42px">
      <el-row :gutter="10">
src/components/makepager/TableCommonView.vue
@@ -28,6 +28,7 @@
        <template slot-scope="scope">
          <span v-if="item.price">{{ "¥" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
          <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
          <span v-else-if="item.isTime">{{ dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) }}</span>
          <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
        </template>
      </el-table-column>
@@ -123,7 +124,7 @@
            sums[index + 1]
          }
        })
        console.log(sums)
        // console.log(sums)
        return sums
      }
    },
@@ -154,6 +155,27 @@
        s[1] = s[1].substring(0, prec) //小数点位数超出长度时截取前面的位数
      }
      return s.join(dec)
    },
    // 时间显示
    dateFormat(fmt, date) {
      let ret = ""
      date = new Date(date)
      const opt = {
        "Y+": date.getFullYear().toString(), // 年
        "m+": (date.getMonth() + 1).toString(), // 月
        "d+": date.getDate().toString(), // 日
        "H+": date.getHours().toString(), // 时
        "M+": date.getMinutes().toString(), // 分
        "S+": date.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
      }
      for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt)
        if (ret) {
          fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
        }
      }
      return fmt
    }
  }
}
src/views/client/client/AddClientManageDialog.vue
@@ -126,7 +126,11 @@
              </el-col> -->
              <el-col :span="12">
                <el-form-item label="下次回访日期" prop="next_visit_time">
                  <el-date-picker v-model="editConfig.infomation.next_visit_time" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.next_visit_time"
                    type="datetime"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -134,7 +138,7 @@
                <el-form-item label="最晚服务到期日" prop="latest_service_time">
                  <el-date-picker
                    v-model="editConfig.infomation.latest_service_time"
                    type="date"
                    type="datetime"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
@@ -157,8 +161,8 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系人职务" prop="contact_duties">
                  <el-input v-model="editConfig.infomation.contact_duties"></el-input>
                <el-form-item label="联系人职务" prop="position">
                  <el-input v-model="editConfig.infomation.position"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -474,7 +478,6 @@
<script>
import { getAllData, getAddClient, getUpdateClient } from "@/api/client/client"
import { dateFormat } from "@/common/config/index"
export default {
  name: "AddClientManageDialog",
  props: {
@@ -484,36 +487,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            name: "",
            number: "AC6521",
            client_status_id: "",
            member_id: "5",
            client_type_id: "",
            clientSource: "",
            client_level_id: "",
            service_member_id: "",
            next_visit_time: "",
            latest_service_time: "",
            contact_name: "",
            contact_phone: "",
            contact_duties: "",
            contact_wechat: "1",
            contact_email: "",
            industry_id: "",
            representative: "",
            registration_time: "",
            registered_capital_id: "",
            enterprise_nature_id: "",
            enterprise_scale_id: "",
            business_scope: "",
            country_id: "",
            province_id: "",
            city_id: "",
            region_id: "",
            detail_address: "",
            remark: ""
          }
          infomation: {}
        }
      }
    }
@@ -637,18 +611,18 @@
        client_status_id: data.client_status_id || 0,
        client_type_id: data.client_type_id || 0,
        contact: {
          birthday: "1970-01-01 08:00:00",
          birthday: "",
          city_id: 0,
          client_id: 0,
          country_id: 0,
          desc: "string",
          desc: "",
          email: data.contact_email || "",
          is_first: true,
          is_first: false,
          member_id: 0,
          name: data.contact_name || "",
          number: "string",
          number: "",
          phone: data.contact_phone || "",
          position: data.contact_duties || "",
          position: data.position || "",
          province_id: 0,
          region_id: 0,
          wechat: data.contact_wechat || ""
@@ -658,7 +632,7 @@
        enterprise_nature_id: data.enterprise_nature_id || 0,
        enterprise_scale_id: data.enterprise_scale_id || 0,
        industry_id: data.industry_id || 0,
        latest_service_time: dateFormat("YYYY-mm-dd HH:MM:ss", data.latest_service_time) || "",
        latest_service_time: data.latest_service_time || "",
        member_id: parseInt(data.member_id) || 0,
        name: data.name || "",
        next_visit_time: data.next_visit_time || "",
src/views/client/client/index.vue
@@ -48,7 +48,7 @@
<script>
import AddClientManageDialog from "@/views/client/client/AddClientManageDialog.vue"
import { getClientList } from "@/api/client/client"
import { dateFormat } from "@/common/config/index"
export default {
  name: "CustomManage",
  props: {},
@@ -105,7 +105,7 @@
          { label: "客户名称", prop: "name", min: 100 }, // 客户名称
          { label: "销售负责人", prop: "member_id" }, // 销售负责人
          { label: "重要级别", prop: "client_level_id" }, // 重要级别
          { label: "下次回访日期", prop: "next_visit_time", min: 90 }, // 下次回访日期
          { label: "下次回访日期", prop: "next_visit_time", isTime: true, min: 90 }, // 下次回访日期
          { label: "详细地址", prop: "detail_address", min: 200 }, // 详细地址
          { label: "客户状态", prop: "client_status_id" }, // 客户状态
          { label: "联系人姓名", prop: "contact_name" }, // 联系人姓名
@@ -140,7 +140,6 @@
                return {
                  ...item,
                  next_visit_time: dateFormat("YYYY-mm-dd HH:MM:ss", item.next_visit_time),
                  contact_name: contact_name,
                  contact_phone: contact_phone
                }
src/views/client/contacts/AddContactsDialog.vue
@@ -162,12 +162,12 @@
          <div v-if="isUnflod" class="basic-info-view">
            <el-row>
              <el-col :span="24">
                <el-form-item label="备注" prop="notes">
                <el-form-item label="备注" prop="desc">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2, maxRows: 4 }"
                    placeholder="请输入内容"
                    v-model="editConfig.infomation.notes"
                    v-model="editConfig.infomation.desc"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -230,7 +230,7 @@
          title: "新建",
          infomation: {
            name: "",
            number: "LEA50",
            number: "",
            client_id: "",
            phone: "",
            position: "",
@@ -245,7 +245,7 @@
            city_id: "",
            region_id: "",
            postalCode: "",
            notes: ""
            desc: ""
          }
        }
      }
@@ -351,6 +351,7 @@
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        birthday: data.birthday || "",
        city_id: data.city_id || 0,
        client_id: 0,
src/views/client/contacts/index.vue
@@ -118,21 +118,23 @@
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        contactNumber: "LEA50",
        contactName: "",
        contactDuties: "",
        phoneNumber: "",
        businessStatus: "新建",
        businessSource: "1",
        owner: "",
        name: "",
        number: "",
        client_id: "",
        phone: "",
        position: "",
        map: "",
        country: "1",
        province: "1",
        city: "1",
        region: "1",
        address: ""
        member_id: "",
        is_first: false,
        wechat: "",
        birthday: "",
        email: "",
        nextFollowupDate: "",
        country_id: "",
        province_id: "",
        city_id: "",
        region_id: "",
        postalCode: "",
        desc: ""
      }
    },
    // 编辑
@@ -141,21 +143,22 @@
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: row.customName,
        saleLeadNumber: row.saleLeadNumber,
        contactName: row.contactName,
        contactDuties: row.contactDuties,
        phoneNumber: row.phoneNumber,
        businessStatus: "新建",
        businessSource: row.businessSource,
        owner: row.owner,
        position: "",
        map: "",
        country: "1",
        province: "1",
        city: "1",
        region: "1",
        address: ""
        id: row.id,
        birthday: row.birthday,
        city_id: row.city_id,
        client_id: 0,
        country_id: row.country_id,
        desc: row.desc,
        email: row.email,
        is_first: row.is_first || false,
        member_id: row.member_id,
        name: row.name,
        number: row.number,
        phone: row.phone,
        position: row.position,
        province_id: row.province_id,
        region_id: row.region_id,
        wechat: row.wechat
      }
    }
  }
src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -21,9 +21,9 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_id">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <el-input v-model="editConfig.infomation.client_name"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit-outline"></i></div>
                  </div>
@@ -198,7 +198,7 @@
          visible: false,
          title: "新建",
          infomation: {
            client_id: "",
            client_name: "",
            number: "",
            client_status_id: "",
            contact_id: "",
@@ -230,7 +230,8 @@
      rules: {
        number: [{ required: true, message: "请输入跟进记录编号", trigger: "blur" }],
        member_id: [{ required: true, message: "请选择负责人", trigger: "change" }],
        record: [{ required: true, message: "请输入跟进记录", trigger: "blur" }]
        record: [{ required: true, message: "请输入跟进记录", trigger: "blur" }],
        content: [{ required: true, message: "请输入内容", trigger: "blur" }]
      },
      clientStatusOptions: [], // 客户状态
      memberOptions: [],
@@ -304,12 +305,11 @@
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
      let follow_record = {
        follow_record: {
          client_id: data.client_id || 0,
          client_status_id: data.client_status_id || 0,
          contact_id: data.contact_id || 0,
          contact_id: 0, // data.contact_id ||
          contact_information_id: data.contact_information_id || 0,
          content: data.content || "",
          follow_time: data.follow_time || "",
@@ -318,11 +318,17 @@
          number: data.number || "",
          purpose: data.purpose || "",
          record: data.record || "",
          sale_chance_id: data.sale_chance_id || 0,
          sales_leads_id: data.sales_leads_id || 0,
          sale_chance_id: 0, //data.sale_chance_id ||
          sales_leads_id: 0, // data.sales_leads_id ||
          topic: data.topic || ""
        }
      }
      let params = {}
      if (this.editConfig.title === "新建") {
        params = { ...follow_record }
      } else {
        params = { ...follow_record, id: data.id || 0 }
      }
      return params
    },
    // 添加附件
src/views/client/followupRecords/index.vue
@@ -22,7 +22,6 @@
<script>
import AddFollowupRecordsDialog from "@/views/client/followupRecords/AddFollowupRecordsDialog"
import { getFollowRecordList } from "@/api/client/followupRecords.js"
import { dateFormat } from "@/common/config/index"
export default {
  name: "FollowupRecords",
@@ -105,9 +104,7 @@
                  client_name: item.client.name,
                  contact_name: item.contact.name,
                  client_status_id: item.client.client_status_id,
                  phone: item.contact.phone,
                  follow_time: dateFormat("YYYY-mm-dd HH:MM", item.follow_time),
                  next_follow_time: dateFormat("YYYY-mm-dd HH:MM", item.next_follow_time)
                  phone: item.contact.phone
                }
              })
              this.tableList.tableInfomation = list || []
@@ -153,6 +150,7 @@
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        id: row.id,
        client_name: row.client_name,
        client_id: row.client_id,
        number: row.number,
        client_status_id: row.client_status_id,
src/views/sales/contractManage/AddContractManageDialog.vue
@@ -21,39 +21,52 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="client_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="单据编号" prop="documentNumber">
                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
                <el-form-item label="单据编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="负责人" prop="owner">
                  <el-select v-model="editConfig.infomation.owner" placeholder="请选择" size="mini" style="width: 63%">
                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
                <el-form-item label="负责人" prop="member_id">
                  <el-select
                    v-model="editConfig.infomation.member_id"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="合同状态" prop="contractStatus">
                  <CommonSelectView
                    :common-value="editConfig.infomation.contractStatus"
                    :common-options="contractStatusOptions"
                  />
                <el-form-item label="合同状态" prop="status_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.status_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售报价单" prop="salesQuotation">
                <el-form-item label="销售报价单" prop="quotation_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.salesQuotation"></el-input>
                    <el-input v-model="editConfig.infomation.quotation_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
@@ -95,7 +108,7 @@
            <div v-else><i class="el-icon-arrow-down"></i></div>
          </div>
          <!-- 选择审批流程 -->
          <div class="basic-info-title">选择审批流程</div>
          <!-- <div class="basic-info-title">选择审批流程</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="20">
@@ -132,11 +145,11 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button>
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
@@ -145,7 +158,8 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import { getAllData } from "@/api/client/client"
import { getAddContract, getUpdateContract } from "@/api/sales/contractManage"
export default {
  name: "AddContractManageDialog",
  props: {
@@ -155,42 +169,23 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            documentNumber: "TKD20230521-12",
            owner: "",
            contractStatus: "",
            salesQuotation: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView },
  components: {},
  computed: {},
  data() {
    return {
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        documentNumber: [{ required: true, message: "请输入", trigger: "blur" }],
        owner: [{ required: true, message: "请选择", trigger: "change" }]
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        member_id: [{ required: true, message: "请选择", trigger: "change" }]
      },
      ownerOptions: [
        // 负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      contractStatusOptions: [
      memberOptions: [],
      statusOptions: [
        { value: "1", label: "待审批" },
        { value: "2", label: "审批中" },
        { value: "3", label: "已审批" },
@@ -201,8 +196,78 @@
      isUnflod: true
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddContract(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateContract(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        client_id: data.client_id || 0,
        file: data.file || "",
        member_id: data.member_id || 0,
        number: data.number || "",
        quotation_id: data.quotation_id || 0,
        status_id: data.status_id || 0
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
@@ -247,10 +312,17 @@
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/sales/contractManage/index.vue
@@ -31,6 +31,7 @@
<script>
import AddContractManageDialog from "@/views/sales/contractManage/AddContractManageDialog"
import { getContractList } from "@/api/sales/contractManage"
export default {
  name: "ContractManage",
@@ -74,22 +75,15 @@
  },
  created() {
    this.setTable()
    this.getData()
  },
  methods: {
    setTable() {
      this.tableList = {
        tableInfomation: [
          {
            documentNumber: "ZDYB02-2",
            owner: "系统管理员",
            approvalStatus: "审批中",
            creator: "系统管理员",
            createTime: "2023-0703 11:22:12"
          }
        ],
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "documentNumber", min: 120 },
          { label: "负责人", prop: "owner", min: 90 },
          { label: "单据编号", prop: "number", min: 120 },
          { label: "负责人", prop: "memberId", min: 90 },
          { label: "审批状态", prop: "approvalStatus" },
          { label: "创建人", prop: "creator", min: 100 },
          { label: "创建时间", prop: "createTime" }
@@ -101,6 +95,34 @@
        this.searchOptions.push({ value: (i + 1).toString(), label: label })
      }
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getContractList()
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                }
              })
              this.tableList.tableInfomation = list || []
            } else {
              this.tableList.tableInfomation = []
            }
          } else {
            this.tableList.tableInfomation = []
          }
          this.loading = false
        })
        .catch((err) => {
          console.log(err)
          this.tableList.tableInfomation = []
          this.loading = false
        })
    },
    // 新建
    addBtnClick() {
      this.editConfig.visible = true
src/views/sales/generatePlan/AddGeneratePlanDialog.vue
@@ -21,40 +21,45 @@
          <div class="basic-info-view">
            <el-row>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="clientId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="单据编号" prop="documentNumber">
                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
                <el-form-item label="单据编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="负责人" prop="owner">
                  <el-select v-model="editConfig.infomation.owner" placeholder="请选择" size="mini" style="width: 63%">
                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
                <el-form-item label="负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售子单" prop="subOrder">
                <el-form-item label="销售子单" prop="subOrderId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.subOrder"></el-input>
                    <el-input v-model="editConfig.infomation.subOrderId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售明细单" prop="salesDetails">
                <el-form-item label="销售明细单" prop="salesDetailsId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.salesDetails"></el-input>
                    <el-input v-model="editConfig.infomation.salesDetailsId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
@@ -67,23 +72,23 @@
          <div class="address-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="计划开始时间" prop="planStartTime">
                  <el-date-picker v-model="editConfig.infomation.planStartTime" type="datetime" default-time="12:00:00">
                <el-form-item label="计划开始时间" prop="startTime">
                  <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" default-time="12:00:00">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="计划截止时间" prop="planDeadline">
                  <el-date-picker v-model="editConfig.infomation.planDeadline" type="datetime" default-time="12:00:00">
                <el-form-item label="计划截止时间" prop="endTime">
                  <el-date-picker v-model="editConfig.infomation.endTime" type="datetime" default-time="12:00:00">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item label="计划内容" prop="refundReason">
                <el-form-item label="计划内容" prop="content">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.refundReason"
                    v-model="editConfig.infomation.content"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -133,6 +138,8 @@
</template>
<script>
import { getAllData } from "@/api/client/client"
import { getAddPlan, getUpdatePlan } from "@/api/sales/generatePlan"
export default {
  name: "AddGeneratePlanDialog",
  props: {
@@ -142,15 +149,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            documentNumber: "",
            owner: "",
            subOrder: "",
            salesDetails: "",
            planStartTime: "",
            planDeadline: ""
          }
          infomation: {}
        }
      }
    }
@@ -162,25 +161,91 @@
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        documentNumber: [{ required: true, message: "请输入", trigger: "blur" }],
        owner: [{ required: true, message: "请选择", trigger: "change" }]
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        memberId: [{ required: true, message: "请选择", trigger: "change" }]
      },
      ownerOptions: [
        // 负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddPlan(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdatePlan(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        plan: {
          clientId: data.clientId || 0,
          content: data.content || "",
          endTime: data.endTime || "",
          file: data.file || "",
          memberId: data.memberId || 0,
          number: data.number || "",
          salesDetailsId: data.salesDetailsId || 0,
          startTime: data.startTime || "",
          subOrderId: data.subOrderId || 0
        }
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
src/views/sales/generatePlan/index.vue
@@ -72,8 +72,8 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "documentNumber", min: 120 },
          { label: "负责人", prop: "owner", min: 90 },
          { label: "单据编号", prop: "number", min: 120 },
          { label: "负责人", prop: "memberId", min: 90 },
          { label: "审批状态", prop: "approvalStatus" },
          { label: "创建人", prop: "creator", min: 100 },
          { label: "创建时间", prop: "createTime" }
@@ -117,38 +117,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        documentNumber: "ZDYBD04-12",
        owner: "",
        subOrder: "",
        salesDetails: "",
        planStartTime: "",
        planDeadline: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        documentNumber: "",
        owner: "",
        subOrder: "",
        salesDetails: "",
        planStartTime: "",
        planDeadline: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -21,48 +21,53 @@
          <div class="basic-info-view">
            <el-row>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="client_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="单据编号" prop="documentNumber">
                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
                <el-form-item label="单据编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="负责人" prop="owner">
                  <el-select v-model="editConfig.infomation.owner" placeholder="请选择" size="mini" style="width: 63%">
                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
                <el-form-item label="负责人" prop="member_id">
                  <el-select
                    v-model="editConfig.infomation.member_id"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="服务开始时间" prop="serviceStartTime">
                  <el-date-picker v-model="editConfig.infomation.serviceStartTime" type="date" placeholder="选择日期">
                <el-form-item label="服务开始时间" prop="start_time">
                  <el-date-picker v-model="editConfig.infomation.start_time" type="date" placeholder="选择日期">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="服务截止时间" prop="serviceDeadline">
                  <el-date-picker v-model="editConfig.infomation.serviceDeadline" type="date" placeholder="选择日期">
                <el-form-item label="服务截止时间" prop="end_time">
                  <el-date-picker v-model="editConfig.infomation.end_time" type="date" placeholder="选择日期">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="合同金额" prop="contractAmount">
                  <el-input v-model="editConfig.infomation.contractAmount"></el-input>
                <el-form-item label="合同金额" prop="money">
                  <el-input v-model="editConfig.infomation.money"></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div v-if="isUnflod" class="basic-info-title">附件信息</div>
          <!-- <div v-if="isUnflod" class="basic-info-title">附件信息</div>
          <div v-if="isUnflod" class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -87,17 +92,17 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
        <!-- 展开收起 -->
        <div v-if="editConfig.title === '新建'" class="unflod-collapse" @click="unflodCollapseClick">
        <!-- <div v-if="editConfig.title === '新建'" class="unflod-collapse" @click="unflodCollapseClick">
          <div>{{ unflodCollapseStr }}</div>
          <div v-if="isUnflod"><i class="el-icon-arrow-up"></i></div>
          <div v-else><i class="el-icon-arrow-down"></i></div>
        </div>
        </div> -->
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
    </el-dialog>
@@ -105,6 +110,8 @@
</template>
<script>
import { getAllData } from "@/api/client/client"
import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder"
export default {
  name: "QuotationDialog",
  props: {
@@ -114,14 +121,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            documentNumber: "AC6521",
            owner: "",
            serviceStartTime: "",
            serviceDeadline: "",
            contractAmount: ""
          }
          infomation: {}
        }
      }
    }
@@ -133,25 +133,86 @@
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        documentNumber: [{ required: true, message: "请输入", trigger: "blur" }],
        owner: [{ required: true, message: "请选择", trigger: "change" }]
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        member_id: [{ required: true, message: "请选择", trigger: "change" }]
      },
      ownerOptions: [
        // 负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddMasterOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateMasterOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        client_id: data.client_id || 0,
        end_time: data.end_time || "",
        member_id: data.member_id || 0,
        money: data.money || "",
        number: data.number || "",
        start_time: data.start_time || ""
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
src/views/sales/masterOrder/index.vue
@@ -59,7 +59,7 @@
      },
      showSummary: {
        show: true,
        sumProp: ["contractAmount"],
        sumProp: ["money"],
        mergeNumber: 5
      }
    }
@@ -73,13 +73,13 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "documentNumber", min: 120 }, // 单据编号
          { label: "客户名称", prop: "customName", min: 120 }, // 客户名称
          { label: "服务开始时间", prop: "serviceStartTime", min: 90 }, // 服务开始时间
          { label: "服务截止时间", prop: "serviceDeadline" }, // 服务截止时间
          { label: "合同金额", prop: "contractAmount", min: 100 }, // 合同金额
          { label: "负责人", prop: "owner" }, // 负责人
          { label: "审批状态", prop: "approvalStatus" } // 审批状态
          { label: "单据编号", prop: "number", min: 100 }, // 单据编号
          { label: "客户名称", prop: "client_id", min: 120 }, // 客户名称
          { label: "服务开始时间", prop: "start_time", min: 90 }, // 服务开始时间
          { label: "服务截止时间", prop: "end_time" }, // 服务截止时间
          { label: "合同金额", prop: "money" }, // 合同金额
          { label: "负责人", prop: "member_id" } // 负责人
          // { label: "审批状态", prop: "approvalStatus" } // 审批状态
        ]
      }
      this.searchOptions = []
@@ -120,28 +120,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        documentNumber: "AC6521",
        owner: "",
        serviceStartTime: "",
        serviceDeadline: "",
        contractAmount: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        documentNumber: "AC6521",
        owner: "",
        serviceStartTime: "",
        serviceDeadline: "",
        contractAmount: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/quotation/AddQuotationDialog.vue
@@ -22,64 +22,73 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="client_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="报价编号" prop="quotationNo">
                  <el-input v-model="editConfig.infomation.quotationNo"></el-input>
                <el-form-item label="报价编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="报价单状态" prop="quotationStatus">
                  <CommonSelectView
                    :common-value="editConfig.infomation.quotationStatus"
                    :common-options="quotationStatusOptions"
                  />
                <el-form-item label="报价单状态" prop="quotation_status_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.quotation_status_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option
                        v-for="item in quotationStatusOptions"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="有效期至" prop="validTo">
                  <el-date-picker v-model="editConfig.infomation.validTo" type="date" placeholder="选择日期">
                <el-form-item label="有效期至" prop="validity_date">
                  <el-date-picker v-model="editConfig.infomation.validity_date" type="date" placeholder="选择日期">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系人姓名" prop="contactName">
                <el-form-item label="联系人姓名" prop="contact_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.contactName"></el-input>
                    <el-input v-model="editConfig.infomation.contact_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="salesHead">
                <el-form-item label="销售负责人" prop="member_id">
                  <el-select
                    v-model="editConfig.infomation.salesHead"
                    v-model="editConfig.infomation.member_id"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in salesHeadOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售机会" prop="salesOpportunity">
                <el-form-item label="销售机会" prop="sale_chance_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.salesOpportunity"></el-input>
                    <el-input v-model="editConfig.infomation.sale_chance_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
@@ -89,21 +98,21 @@
          </div>
          <!-- 条款与条件 -->
          <div class="basic-info-title">条款与条件</div>
          <div class="address-view">
          <div class="basic-info-view">
            <el-row>
              <el-col :span="24">
                <el-form-item label="条款与条件" prop="termsTreaty">
                <el-form-item label="条款与条件" prop="conditions">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 4 }"
                    v-model="editConfig.infomation.termsTreaty"
                    v-model="editConfig.infomation.conditions"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info-title">附件信息</div>
          <!-- <div class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -128,9 +137,9 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info-title" style="display: flex">
          <!-- <div class="basic-info-title" style="display: flex">
            产品管理
            <div style="margin-left: 400px">
              币种
@@ -142,9 +151,9 @@
          </div>
          <div class="product-view">
            <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
          </div>
          </div> -->
          <!-- 选择审批流程 -->
          <div class="basic-info-title">选择审批流程</div>
          <!-- <div class="basic-info-title">选择审批流程</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="20">
@@ -181,13 +190,13 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button>
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
    </el-dialog>
@@ -195,8 +204,10 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
// import CommonSelectView from "@/components/makepager/CommonSelectView"
// import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddQuotation, getUpdateQuotation } from "@/api/sales/quotation"
export default {
  name: "QuotationDialog",
  props: {
@@ -206,25 +217,12 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            quotationNo: "AC6521",
            quotationStatus: "",
            validTo: "",
            contactName: "",
            salesHead: "",
            salesOpportunity: "",
            termsTreaty: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView, CommonFormTableView },
  // components: { CommonSelectView, CommonFormTableView },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
@@ -235,22 +233,13 @@
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        customName: [{ required: true, message: "请输入", trigger: "blur" }],
        quotationNo: [{ required: true, message: "请输入", trigger: "blur" }],
        quotationStatus: [{ required: true, message: "请选择", trigger: "change" }],
        salesHead: [{ required: true, message: "请选择负责人", trigger: "change" }]
        client_id: [{ required: true, message: "请输入", trigger: "blur" }],
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        quotation_status_id: [{ required: true, message: "请选择", trigger: "change" }],
        member_id: [{ required: true, message: "请选择负责人", trigger: "change" }]
      },
      salesHeadOptions: [
        // 销售负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      quotationStatusOptions: [], // 报价单状态
      memberOptions: [],
      quotationStatusOptions: [{ id: 1, name: "不知道" }], // 报价单状态
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
        { value: "2", label: "英镑(£)" },
@@ -268,8 +257,81 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          // 缺 币种 报价单状态
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddQuotation(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateQuotation(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        client_id: parseInt(data.client_id) || 0,
        conditions: data.conditions || "",
        contact_id: data.contact_id || 0,
        file: data.file || "",
        member_id: data.member_id || 0,
        number: data.number || "",
        quotation_status_id: data.quotation_status_id || 0,
        sale_chance_id: data.sale_chance_id || 0,
        validity_date: data.validity_date || ""
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
@@ -336,10 +398,17 @@
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/sales/quotation/index.vue
@@ -75,11 +75,11 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "报价单号", prop: "quotationNo", min: 90 }, // 报价单号
          { label: "客户名称", prop: "customName", min: 120 }, // 客户名称
          { label: "联系人姓名", prop: "contactName", min: 90 }, // 联系人姓名
          { label: "销售负责人", prop: "salesHead" }, // 销售负责人
          { label: "修改时间", prop: "modifyTime", min: 100 }, // 修改时间
          { label: "报价单号", prop: "number", min: 90 }, // 报价单号
          { label: "客户名称", prop: "client_name", min: 120 }, // 客户名称
          { label: "联系人姓名", prop: "contact_name", min: 90 }, // 联系人姓名
          { label: "销售负责人", prop: "member_id" }, // 销售负责人
          { label: "有效期", prop: "validity_date", min: 100 }, // 修改时间
          { label: "小计", prop: "subTotal" }, // 小计
          { label: "合计", prop: "total" }, // 合计
          { label: "产品名称", prop: "productName" }, // 产品名称
@@ -103,7 +103,9 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name,
                  contact_name: item.contact.name
                }
              })
              this.tableList.tableInfomation = list || []
@@ -125,40 +127,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        quotationNo: "AC6521",
        quotationStatus: "",
        validTo: "",
        contactName: "",
        salesHead: "",
        salesOpportunity: "",
        termsTreaty: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        quotationNo: "AC6521",
        quotationStatus: "",
        validTo: "",
        contactName: "",
        salesHead: "",
        salesOpportunity: "",
        termsTreaty: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/refundForm/AddRefundFormDialog.vue
@@ -22,17 +22,17 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="clientId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="退款单编号" prop="refundOrderNo">
                  <el-input v-model="editConfig.infomation.refundOrderNo"></el-input>
                <el-form-item label="退款单编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -49,19 +49,14 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="salesHead">
                <el-form-item label="销售负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.salesHead"
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in salesHeadOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
@@ -73,38 +68,65 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="付款方式" prop="paymentMethod">
                  <CommonSelectView
                    :common-value="editConfig.infomation.paymentMethod"
                    :common-options="paymentMethodOptions"
                  />
                <el-form-item label="付款方式" prop="refundMethod">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.refundMethod"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in refundMethodOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="账户" prop="account">
                  <CommonSelectView :common-value="editConfig.infomation.account" :common-options="accountOptions" />
                <el-form-item label="账户" prop="accountId">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.accountId"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in accountOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="是否开票" prop="whetherInvoicing">
                  <CommonSelectView
                    :common-value="editConfig.infomation.whetherInvoicing"
                    :common-options="whetherInvoicingOptions"
                  />
                <el-form-item label="是否开票" prop="isInvoice">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.isInvoice"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in isInvoiceOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 备注信息 -->
          <div class="basic-info-title">备注信息</div>
          <div class="address-view">
          <!-- 退款原因 -->
          <div class="basic-info-title">退款原因</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="24">
                <el-form-item label="退款原因" prop="refundReason">
                <el-form-item label="退款原因" prop="reason">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.refundReason"
                    v-model="editConfig.infomation.reason"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -142,7 +164,13 @@
            产品管理
            <div style="margin-left: 400px">
              币种
              <el-select v-model="editConfig.infomation.currency" placeholder="请选择" size="mini" style="width: 63%">
              <el-select
                v-model="editConfig.infomation.currency"
                placeholder="请选择"
                size="mini"
                style="width: 63%"
                disabled
              >
                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
@@ -152,7 +180,7 @@
            <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
          </div>
          <!-- 选择审批流程 -->
          <div v-if="editConfig.title === '新建'" class="basic-info-title">选择审批流程</div>
          <!-- <div v-if="editConfig.title === '新建'" class="basic-info-title">选择审批流程</div>
          <div v-if="editConfig.title === '新建'" class="basic-info-view">
            <el-row>
              <el-col :span="20">
@@ -189,11 +217,11 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button>
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
@@ -202,8 +230,9 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesRefund, getUpdateSalesRefund } from "@/api/sales/refundForm"
export default {
  name: "AddRefundFormDialog",
  props: {
@@ -213,50 +242,27 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            refundOrderNo: "TKD20230521-12",
            selSourceOrder: "",
            salesHead: "",
            refundDate: "",
            paymentMethod: "",
            account: "",
            whetherInvoicing: "",
            refundReason: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView, CommonFormTableView },
  components: { CommonFormTableView },
  computed: {},
  data() {
    return {
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        customName: [{ required: true, message: "请输入", trigger: "blur" }],
        refundOrderNo: [{ required: true, message: "请输入", trigger: "blur" }],
        clientId: [{ required: true, message: "请输入", trigger: "blur" }],
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        refundDate: [{ required: true, message: "请选择", trigger: "change" }],
        salesHead: [{ required: true, message: "请选择", trigger: "change" }],
        memberId: [{ required: true, message: "请选择", trigger: "change" }],
        account: [{ required: true, message: "请选择", trigger: "change" }]
      },
      salesHeadOptions: [
        // 销售负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      memberOptions: [],
      selSourceOrderOptions: [{ value: "1", label: "销售退货单" }], // 选择源单
      paymentMethodOptions: [
      refundMethodOptions: [
        { value: "1", label: "现金" },
        { value: "2", label: "支票" },
        { value: "3", label: "电汇" },
@@ -265,7 +271,7 @@
        { value: "6", label: "其他" }
      ], // 付款方式
      accountOptions: [{ value: "1", label: "人民币账户" }], // 账户
      whetherInvoicingOptions: [
      isInvoiceOptions: [
        { value: "1", label: "未开" },
        { value: "2", label: "已开" }
      ], // 是否开票
@@ -286,8 +292,99 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesRefund(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSalesRefund(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        salesRefund: {
          accountId: data.accountId || 0,
          clientId: data.clientId || 0,
          isInvoice: data.isInvoice || 0,
          memberId: data.memberId || 0,
          number: data.number || "",
          products: [
            {
              amount: 0,
              desc: "",
              id: 0,
              name: "",
              number: "",
              price: 0,
              total: 0
            }
          ],
          reason: data.reason || "",
          refundDate: data.refundDate || "",
          refundMethod: data.refundMethod || ""
        }
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {},
    setTableForm() {
      this.productTableList = {
        tableData: [
@@ -319,14 +416,7 @@
          { label: "描述", prop: "other8" }
        ]
      }
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {}
    }
  }
}
</script>
@@ -354,10 +444,17 @@
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/sales/refundForm/index.vue
@@ -70,14 +70,14 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "退款单编号", prop: "refundOrderNo" },
          { label: "客户名称", prop: "customName", min: 120 },
          { label: "退款单编号", prop: "number" },
          { label: "客户名称", prop: "clientId", min: 120 },
          { label: "退款日期", prop: "refundDate", min: 90 },
          { label: "账户", prop: "account" },
          { label: "是否开票", prop: "whetherInvoicing", min: 100 },
          { label: "付款方式", prop: "paymentMethod" },
          { label: "销售负责人", prop: "salesHead" },
          { label: "修改时间", prop: "modifyTime" },
          { label: "账户", prop: "accountId" },
          { label: "是否开票", prop: "isInvoice", min: 100 },
          { label: "付款方式", prop: "refundMethod" },
          { label: "销售负责人", prop: "memberId" },
          // { label: "修改时间", prop: "modifyTime" },
          { label: "价税合计", prop: "priceTax" }
        ]
      }
@@ -119,42 +119,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        refundOrderNo: "TKD20230521-12",
        selSourceOrder: "1",
        salesHead: "5",
        refundDate: "",
        paymentMethod: "1",
        account: "1",
        whetherInvoicing: "1",
        refundReason: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        refundOrderNo: "TKD20230521-12",
        selSourceOrder: "",
        salesHead: "",
        refundDate: "",
        paymentMethod: "",
        account: "",
        whetherInvoicing: "",
        refundReason: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -22,23 +22,23 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="clientId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="订单编号" prop="orderNumber">
                  <el-input v-model="editConfig.infomation.orderNumber"></el-input>
                <el-form-item label="订单编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售机会" prop="salesOpportunity">
                <el-form-item label="销售机会" prop="saleChanceId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.salesOpportunity"></el-input>
                    <el-input v-model="editConfig.infomation.saleChanceId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
@@ -58,25 +58,20 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="签约日期" prop="signDate">
                  <el-date-picker v-model="editConfig.infomation.signDate" type="date" placeholder="选择日期">
                <el-form-item label="签约日期" prop="signTime">
                  <el-date-picker v-model="editConfig.infomation.signTime" type="date" placeholder="选择日期">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="salesHead">
                <el-form-item label="销售负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.salesHead"
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in salesHeadOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
@@ -89,10 +84,25 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="微信订单状态" prop="wechatOrderStatus">
                  <CommonSelectView
                    :common-value="editConfig.infomation.wechatOrderStatus"
                    :common-options="wechatOrderStatusOptions"
                  />
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.wechatOrderStatus"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option
                        v-for="item in wechatOrderStatusOptions"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-select>
                    <div class="common-select-btn">
                      <i class="el-icon-setting"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
            </el-row>
@@ -102,21 +112,21 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="收货人" prop="consignee">
                  <el-input v-model="editConfig.infomation.consignee"></el-input>
                <el-form-item label="收货人" prop="addressee">
                  <el-input v-model="editConfig.infomation.addressee"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="收货人联系方式" prop="consigneeContactInfo">
                  <el-input v-model="editConfig.infomation.consigneeContactInfo"></el-input>
                <el-form-item label="收货人联系方式" prop="phone">
                  <el-input v-model="editConfig.infomation.phone"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item label="收货地址" prop="shippingAddress">
                <el-form-item label="收货地址" prop="address">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.shippingAddress"
                    v-model="editConfig.infomation.address"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -180,7 +190,13 @@
            产品管理
            <div style="margin-left: 400px">
              币种
              <el-select v-model="editConfig.infomation.currency" placeholder="请选择" size="mini" style="width: 63%">
              <el-select
                v-model="editConfig.infomation.currency"
                placeholder="请选择"
                size="mini"
                style="width: 63%"
                disabled
              >
                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
@@ -190,7 +206,7 @@
            <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
          </div>
          <!-- 选择审批流程 -->
          <div v-if="editConfig.title === '新建'" class="basic-info-title">选择审批流程</div>
          <!-- <div v-if="editConfig.title === '新建'" class="basic-info-title">选择审批流程</div>
          <div v-if="editConfig.title === '新建'" class="basic-info-view">
            <el-row>
              <el-col :span="20">
@@ -232,12 +248,12 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button>
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
@@ -246,8 +262,9 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesDetails, getUpdateSalesDetails } from "@/api/sales/salesDetails"
export default {
  name: "AddSalesDetailsDialog",
  props: {
@@ -257,54 +274,26 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            orderNumber: "XSHT521",
            salesOpportunity: "",
            selSourceOrder: "",
            signDate: "",
            salesHead: "",
            deliveryDate: "",
            wechatOrderStatus: "",
            consignee: "",
            consigneeContactInfo: "",
            shippingAddress: "",
            termsTreaty: "",
            notes: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalUrgent: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView, CommonFormTableView },
  components: { CommonFormTableView },
  computed: {},
  data() {
    return {
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        customName: [{ required: true, message: "请输入", trigger: "blur" }],
        orderNumber: [{ required: true, message: "请输入", trigger: "blur" }],
        signDate: [{ required: true, message: "请选择", trigger: "change" }],
        salesHead: [{ required: true, message: "请选择负责人", trigger: "change" }],
        approvalOpinion: [{ required: true, message: "请输入", trigger: "blur" }]
        clientId: [{ required: true, message: "请输入", trigger: "blur" }],
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        signTime: [{ required: true, message: "请选择", trigger: "change" }],
        memberId: [{ required: true, message: "请选择负责人", trigger: "change" }]
        // approvalOpinion: [{ required: true, message: "请输入", trigger: "blur" }]
      },
      salesHeadOptions: [
        // 销售负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      selSourceOrderOptions: [{ value: "1", label: "销售子单" }],
      memberOptions: [],
      selSourceOrderOptions: [],
      wechatOrderStatusOptions: [], // 微信订单状态
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
@@ -323,21 +312,108 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    setTableForm() {
      this.productTableList = {
        tableData: [
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesDetails(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSalesDetails(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        salesDetails: {
          address: data.address || "",
          addressee: data.addressee || "",
          clientId: data.id || 0,
          conditions: data.conditions || "",
          deliveryDate: data.id || "",
          memberId: data.id || 0,
          number: data.deliveryDate || "",
          phone: data.phone || "",
          products: [
          {
            id: "1",
            productName: "上海有限公司",
            other0: "ZDYBD03-1",
            other1: "12",
            other2: "",
            other6: "3.00",
            other7: "2.00"
              amount: 0,
              desc: "",
              id: 0,
              name: "",
              number: "",
              price: 0,
              total: 0
          }
        ],
          remark: data.remark || "",
          saleChanceId: data.id || 0,
          saleType: data.id || 0,
          signTime: data.signTime || "",
          wechatOrderStatus: data.id || 0
        }
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {},
    setTableForm() {
      this.productTableList = {
        tableData: [],
        tableColumn: [
          { label: "#", prop: "id", width: 40 },
          { label: "产品名称", prop: "productName", input: true, isRequird: true },
@@ -350,14 +426,7 @@
          { label: "源单", prop: "other3" }
        ]
      }
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {}
    }
  }
}
</script>
src/views/sales/salesDetails/index.vue
@@ -83,30 +83,12 @@
  methods: {
    setTable() {
      this.tableList = {
        tableInfomation: [
          {
            orderNumber: "XSHT265",
            customName: "55555",
            signDate: "2023-06-25",
            salesHead: "系统管理员",
            outboundStatus: "未出库",
            receiveTotalAmount: "8000.00",
            total: "8000.00",
            amountReceivable: "8000.00",
            invoicedAmount: "8000.00",
            uninvoicedAmount: "8000.00",
            productName: "自动打印机",
            number: "1.00",
            taxUnitPrice: "8000.00",
            unOutoundNo: "1.00",
            priceTax: "8000.00"
          }
        ],
        tableInfomation: [],
        tableColumn: [
          { label: "订单编号", prop: "orderNumber" },
          { label: "客户名称", prop: "customName" },
          { label: "签约日期", prop: "signDate" },
          { label: "销售负责人", prop: "salesHead" },
          { label: "订单编号", prop: "number" },
          { label: "客户名称", prop: "clientId" },
          { label: "签约日期", prop: "signTime" },
          { label: "销售负责人", prop: "memberId" },
          { label: "出库状态", prop: "outboundStatus" },
          { label: "已收总额", prop: "receiveTotalAmount", price: true },
          { label: "合计", prop: "total", price: true },
@@ -158,50 +140,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        orderNumber: "XSHT521",
        salesOpportunity: "",
        selSourceOrder: "",
        signDate: "",
        salesHead: "",
        deliveryDate: "",
        wechatOrderStatus: "",
        consignee: "",
        consigneeContactInfo: "",
        shippingAddress: "",
        termsTreaty: "",
        notes: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        orderNumber: "XSHT521",
        salesOpportunity: "",
        selSourceOrder: "",
        signDate: "",
        salesHead: "",
        deliveryDate: "",
        wechatOrderStatus: "",
        consignee: "",
        consigneeContactInfo: "",
        shippingAddress: "",
        termsTreaty: "",
        notes: "",
        approvalWorkflow: "",
        approvalSteps: "",
        approvalPerson: "",
        approvalOpinion: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -22,86 +22,127 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="client_id">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售机会编号" prop="salesOpportunityNo">
                  <el-input v-model="editConfig.infomation.salesOpportunityNo"></el-input>
                <el-form-item label="销售机会编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="机会名称" prop="opportunityName">
                <el-form-item label="机会名称" prop="name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.opportunityName"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <el-input v-model="editConfig.infomation.name"></el-input>
                    <!-- <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> -->
                    <!-- <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系人姓名" prop="contactName">
                  <el-input v-model="editConfig.infomation.contactName"></el-input>
                <el-form-item label="联系人姓名" prop="contact_id">
                  <el-input v-model="editConfig.infomation.contact_id"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机来源" prop="businessSource">
                  <CommonSelectView
                    :common-value="editConfig.infomation.businessSource"
                    :common-options="businessSourceOptions"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机类型" prop="businessType">
                  <CommonSelectView
                    :common-value="editConfig.infomation.businessType"
                    :common-options="businessTypeOptions"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售阶段" prop="saleStage">
                  <CommonSelectView
                    :common-value="editConfig.infomation.saleStage"
                    :common-options="saleStageOptions"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="salesHead">
                <el-form-item label="商机来源" prop="sales_sources_id">
                  <div class="common-select">
                  <el-select
                    v-model="editConfig.infomation.salesHead"
                      v-model="editConfig.infomation.sales_sources_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option
                        v-for="item in businessSourceOptions"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机类型" prop="sale_type_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.sale_type_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in businessTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售阶段" prop="sale_stage_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.sale_stage_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in saleStageOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="member_id">
                  <el-select
                    v-model="editConfig.infomation.member_id"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in salesHeadOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="老客户营销" prop="oldCustomerMarket">
                  <CommonSelectView
                    :common-value="editConfig.infomation.oldCustomerMarket"
                    :common-options="oldCustomerMarketOptions"
                  />
                <el-form-item label="老客户营销" prop="regular_customers_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.regular_customers_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option
                        v-for="item in oldCustomerMarketOptions"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="竞争对手" prop="competitor">
                  <el-input v-model="editConfig.infomation.competitor"></el-input>
                <el-form-item label="竞争对手" prop="competitors">
                  <el-input v-model="editConfig.infomation.competitors"></el-input>
                </el-form-item>
              </el-col>
            </el-row>
@@ -111,8 +152,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="可能性(%)" prop="possible">
                  <CommonSelectView :common-value="editConfig.infomation.possible" :common-options="possibleOptions" />
                <el-form-item label="可能性(%)" prop="possibilities">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.possibilities"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in possibleOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -123,106 +176,110 @@
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in currencyOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in currencyOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="预算绝对值" prop="budgetAbsoluteValue">
                  <el-input v-model="editConfig.infomation.budgetAbsoluteValue"></el-input>
                <el-form-item label="预算绝对值" prop="budget">
                  <el-input v-model="editConfig.infomation.budget"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="预计成交日期" prop="expectDealDate">
                  <el-date-picker v-model="editConfig.infomation.expectDealDate" type="date" placeholder="选择日期">
                <el-form-item label="预计成交日期" prop="expected_time">
                  <el-date-picker v-model="editConfig.infomation.expected_time" type="date" placeholder="选择日期">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="预计合同金额" prop="expectContractAmount">
                  <el-input v-model="editConfig.infomation.expectContractAmount"></el-input>
                <el-form-item label="预计合同金额" prop="projected_amount">
                  <el-input v-model="editConfig.infomation.projected_amount"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="当前状态" prop="currentState">
                  <CommonSelectView
                    :common-value="editConfig.infomation.currentState"
                    :common-options="currentStateOptions"
                  />
                <el-form-item label="当前状态" prop="status_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.status_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in currentStateOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <!-- @click="editDropdownBox" -->
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 商机七要素 -->
          <div class="basic-info-title">商机七要素(5W2P)</div>
          <div class="address-view">
          <div class="basic-info-view">
            <el-row>
              <el-col :span="20">
                <el-form-item label="客户需求或痛点(why)" prop="demandPainPoint">
                <el-form-item label="客户需求或痛点(why)" prop="pain_points">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.demandPainPoint"
                    v-model="editConfig.infomation.pain_points"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="是否已经立项(plan)" prop="projectApproval">
                <el-form-item label="是否已经立项(plan)" prop="whether_established">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.projectApproval"
                    v-model="editConfig.infomation.whether_established"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="资金预算是多少(plan)" prop="fundBudget">
                <el-form-item label="资金预算是多少(plan)" prop="capital_budget">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.fundBudget"
                    v-model="editConfig.infomation.capital_budget"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="关键决策人是谁(who)" prop="decisionMaker">
                <el-form-item label="关键决策人是谁(who)" prop="key_maker">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.decisionMaker"
                    v-model="editConfig.infomation.key_maker"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="关键决策因素有哪些(what)" prop="decisionFactors">
                <el-form-item label="关键决策因素有哪些(what)" prop="key_factors">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.decisionFactors"
                    v-model="editConfig.infomation.key_factors"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="决策流程是怎样的(what)" prop="decisionFlow">
                <el-form-item label="决策流程是怎样的(what)" prop="process">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.decisionFlow"
                    v-model="editConfig.infomation.process"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="竞争对手提供的方案(what)" prop="programme">
                <el-form-item label="竞争对手提供的方案(what)" prop="solutions">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.programme"
                    v-model="editConfig.infomation.solutions"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -230,10 +287,10 @@
          </div>
          <!-- SWOT分析 -->
          <div class="basic-info-title">SWOT分析</div>
          <div class="address-view">
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="优势(S)" prop="advantage">
                <el-form-item label="优势(S)" prop="advantages">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
@@ -242,29 +299,29 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="劣势(W)" prop="disadvantage">
                <el-form-item label="劣势(W)" prop="disadvantages">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.disadvantage"
                    v-model="editConfig.infomation.disadvantages"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="机会(O)" prop="opportunity">
                <el-form-item label="机会(O)" prop="opportunities">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.opportunity"
                    v-model="editConfig.infomation.opportunities"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="威胁(T)" prop="threaten">
                <el-form-item label="威胁(T)" prop="threats">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.threaten"
                    v-model="editConfig.infomation.threats"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -272,9 +329,9 @@
          </div>
          <!-- 地址信息 -->
          <div class="basic-info-title">地址信息</div>
          <div class="address-view">
          <div class="basic-info-view">
            <el-row>
              <el-col :span="20">
              <!-- <el-col :span="20">
                <el-form-item label="定位" prop="position">
                  <el-input v-model="editConfig.infomation.position"></el-input>
                </el-form-item>
@@ -283,34 +340,78 @@
                <el-form-item label="地图" prop="map">
                  <div style="height: 100px"></div>
                </el-form-item>
              </el-col>
              </el-col> -->
              <el-col :span="12">
                <el-form-item label="国家" prop="country">
                  <CommonSelectView :common-value="editConfig.infomation.country" :common-options="countryOptions" />
                <el-form-item label="国家" prop="country_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.country_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="省份" prop="province">
                  <CommonSelectView :common-value="editConfig.infomation.province" :common-options="provinceOptions" />
                <el-form-item label="省份" prop="province_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.province_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="城市" prop="city">
                  <CommonSelectView :common-value="editConfig.infomation.city" :common-options="cityOptions" />
                <el-form-item label="城市" prop="city_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.city_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="区域" prop="region">
                  <CommonSelectView :common-value="editConfig.infomation.region" :common-options="regionOptions" />
                <el-form-item label="区域" prop="region_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.region_id"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in regionOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="20">
                <el-form-item label="详细地址" prop="address">
                <el-form-item label="详细地址" prop="detail_address">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2, maxRows: 4 }"
                    placeholder="请输入内容"
                    v-model="editConfig.infomation.address"
                    v-model="editConfig.infomation.detail_address"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -321,19 +422,19 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="20">
                <el-form-item label="备注" prop="notes">
                <el-form-item label="备注" prop="remark">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2, maxRows: 4 }"
                    placeholder="请输入内容"
                    v-model="editConfig.infomation.notes"
                    v-model="editConfig.infomation.remark"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info-title">附件信息</div>
          <!-- <div class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -358,12 +459,12 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button>
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
    </el-dialog>
@@ -371,7 +472,8 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import { getAllData } from "@/api/client/client"
import { getAddSaleChance, getUpdateSaleChance } from "@/api/sales/salesOpportunity"
export default {
  name: "AddSalesOpportunityDialog",
  props: {
@@ -381,47 +483,12 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            salesOpportunityNo: "POT521",
            opportunityName: "",
            contactName: "",
            businessSource: "",
            businessType: "",
            saleStage: "",
            salesHead: "",
            oldCustomerMarket: "",
            competitor: "",
            possible: "",
            currency: "",
            budgetAbsoluteValue: "",
            expectDealDate: "",
            expectContractAmount: "",
            currentState: "",
            demandPainPoint: "",
            projectApproval: "",
            fundBudget: "",
            decisionMaker: "",
            decisionFactors: "",
            decisionFlow: "",
            programme: "",
            advantage: "",
            disadvantage: "",
            opportunity: "",
            threaten: "",
            position: "",
            map: "",
            country: "1",
            province: "1",
            city: "1",
            region: "1",
            notes: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView },
  components: {},
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
@@ -432,64 +499,144 @@
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        salesOpportunityNo: [{ required: true, message: "请输入", trigger: "blur" }],
        opportunityName: [{ required: true, message: "请选择", trigger: "change" }],
        salesHead: [{ required: true, message: "请选择", trigger: "change" }],
        saleStage: [{ required: true, message: "请选择", trigger: "change" }],
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        name: [{ required: true, message: "请选择", trigger: "change" }],
        member_id: [{ required: true, message: "请选择", trigger: "change" }],
        sale_stage_id: [{ required: true, message: "请选择", trigger: "change" }],
        currency: [{ required: true, message: "请选择", trigger: "change" }],
        expectDealDate: [{ required: true, message: "请选择", trigger: "change" }],
        expectContractAmount: [{ required: true, message: "请选择", trigger: "change" }]
        expected_time: [{ required: true, message: "请选择", trigger: "change" }],
        projected_amount: [{ required: true, message: "请选择", trigger: "change" }]
      },
      businessSourceOptions: [
        { value: "1", label: "后台注册" },
        { value: "2", label: "代理商客户" },
        { value: "3", label: "电话陌生拜访" },
        { value: "4", label: "直接访问" },
        { value: "5", label: "项目合作" },
        { value: "6", label: "个人自找" },
        { value: "7", label: "二次销售" },
        { value: "8", label: "公司电话" }
      ],
      salesHeadOptions: [
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      businessSourceOptions: [],
      memberOptions: [],
      businessTypeOptions: [], // 商机类型
      saleStageOptions: [], // 销售阶段
      oldCustomerMarketOptions: [], // 老客户营销
      possibleOptions: [], // 可能性
      currencyOptions: [], // 币种
      currencyOptions: [
        {
          id: 1,
          name: "人民币"
        }
      ], // 币种
      currentStateOptions: [], // 当前状态
      countryOptions: [{ value: "1", label: "中国" }], // 国家
      provinceOptions: [
        { value: "1", label: "北京市" },
        { value: "2", label: "上海市" },
        { value: "3", label: "吉林省" },
        { value: "4", label: "陕西省" }
      ], // 省份
      cityOptions: [
        { value: "1", label: "北京市" },
        { value: "2", label: "上海市" },
        { value: "3", label: "吉林市" },
        { value: "4", label: "西安市" }
      ], // 城市
      regionOptions: [
        { value: "1", label: "朝阳区" },
        { value: "2", label: "海淀区" },
        { value: "3", label: "通州区" },
        { value: "4", label: "西城区" }
      ] // 区域
      countryOptions: [], // 国家
      provinceOptions: [], // 省份
      cityOptions: [], // 城市
      regionOptions: [] // 区域
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          // 缺 可能性 币种 当前状态
          this.memberOptions = res.data.member
          this.businessSourceOptions = res.data.sales_source
          this.businessTypeOptions = res.data.sale_type
          this.oldCustomerMarketOptions = res.data.regular_customers
          this.saleStageOptions = res.data.sale_stage
          this.countryOptions = res.data.country
          this.provinceOptions = res.data.province
          this.cityOptions = res.data.city
          this.regionOptions = res.data.region
        })
        .catch((err) => {
          console.log(err)
        })
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSaleChance(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSaleChance(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        advantages: data.advantages || "",
        budget: data.budget || 0,
        capital_budget: data.capital_budget || "",
        city_id: data.city_id || 0,
        client_id: data.client_id || 0,
        competitors: data.competitors || "",
        contact_id: data.contact_id || 0,
        country_id: data.country_id || 0,
        currency: data.currency || 0,
        disadvantages: data.disadvantages || "",
        expected_time: data.expected_time || "",
        key_factors: data.key_factors || "",
        key_maker: data.key_maker || "",
        member_id: data.member_id || 0,
        name: data.name || "",
        number: data.number || "",
        opportunities: data.opportunities || "",
        pain_points: data.pain_points || "",
        possibilities: data.possibilities || 0,
        process: data.process || "",
        projected_amount: parseInt(data.projected_amount) || 0,
        province_id: data.province_id || 0,
        region_id: data.region_id || 0,
        regular_customers_id: data.regular_customers_id || 0,
        sale_stage_id: data.sale_stage_id || 0,
        sale_type_id: data.sale_type_id || 0,
        sales_sources_id: data.sales_sources_id || 0,
        solutions: data.solutions || "",
        status_id: data.status_id || 0,
        threats: data.threats || "",
        whether_established: data.whether_established || "",
        remark: data.remark || "",
        detail_address: data.detail_address || ""
      }
      return params
    },
    // 添加附件
    addAnnexClick() {},
@@ -522,10 +669,17 @@
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/sales/salesOpportunity/index.vue
@@ -85,16 +85,16 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "机会名称", prop: "opportunityName", min: 120 }, // 机会名称
          { label: "客户名称", prop: "customName", min: 90 }, // 客户名称
          { label: "销售机会编号", prop: "salesOpportunityNo" }, // 销售机会编号
          { label: "联系人姓名", prop: "contactName", min: 100 }, // 联系人姓名
          { label: "销售阶段", prop: "saleStage" }, // 销售阶段
          { label: "可能性(%)", prop: "possible" }, // 可能性
          { label: "预计成交日期", prop: "expectDealDate" }, // 预计成交日期
          { label: "预计合同金额", prop: "expectContractAmount" }, // 预计合同金额
          { label: "预算绝对值", prop: "budgetAbsoluteValue" }, // 预算绝对值
          { label: "销售负责人", prop: "salesHead" } // 销售负责人
          { label: "机会名称", prop: "name", min: 120 }, // 机会名称
          { label: "客户名称", prop: "client_name", min: 90 }, // 客户名称
          { label: "销售机会编号", prop: "number" }, // 销售机会编号
          { label: "联系人姓名", prop: "contact_name", min: 100 }, // 联系人姓名
          { label: "销售阶段", prop: "sale_stage_id" }, // 销售阶段
          { label: "可能性(%)", prop: "possibilities_id" }, // 可能性
          { label: "预计成交日期", prop: "expected_time" }, // 预计成交日期
          { label: "预计合同金额", prop: "projected_amount" }, // 预计合同金额
          { label: "预算绝对值", prop: "capital_budget" }, // 预算绝对值
          { label: "销售负责人", prop: "member_id" } // 销售负责人
        ]
      }
      this.searchOptions = []
@@ -113,7 +113,9 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name,
                  contact_name: item.contact.name
                }
              })
              this.tableList.tableInfomation = list || []
@@ -135,84 +137,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        salesOpportunityNo: "POT521",
        opportunityName: "",
        contactName: "",
        businessSource: "",
        businessType: "",
        saleStage: "",
        salesHead: "",
        oldCustomerMarket: "",
        competitor: "",
        possible: "",
        currency: "",
        budgetAbsoluteValue: "",
        expectDealDate: "",
        expectContractAmount: "",
        currentState: "",
        demandPainPoint: "",
        projectApproval: "",
        fundBudget: "",
        decisionMaker: "",
        decisionFactors: "",
        decisionFlow: "",
        programme: "",
        advantage: "",
        disadvantage: "",
        opportunity: "",
        threaten: "",
        position: "",
        map: "",
        country: "1",
        province: "1",
        city: "1",
        region: "1",
        notes: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        salesOpportunityNo: "POT521",
        opportunityName: "",
        contactName: "",
        businessSource: "",
        businessType: "",
        saleStage: "",
        salesHead: "",
        oldCustomerMarket: "",
        competitor: "",
        possible: "",
        currency: "",
        budgetAbsoluteValue: "",
        expectDealDate: "",
        expectContractAmount: "",
        currentState: "",
        demandPainPoint: "",
        projectApproval: "",
        fundBudget: "",
        decisionMaker: "",
        decisionFactors: "",
        decisionFlow: "",
        programme: "",
        advantage: "",
        disadvantage: "",
        opportunity: "",
        threaten: "",
        position: "",
        map: "",
        country: "1",
        province: "1",
        city: "1",
        region: "1",
        notes: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/salesReturn/AddSalesReturnDialog.vue
@@ -22,17 +22,17 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="clientId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售退货单编号" prop="salesReturnOrderNo">
                  <el-input v-model="editConfig.infomation.salesReturnOrderNo"></el-input>
                <el-form-item label="销售退货单编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -49,10 +49,10 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="退入仓库" prop="returnWarehouse">
                  <el-select v-model="editConfig.infomation.returnWarehouse" size="mini" style="width: 63%">
                <el-form-item label="退入仓库" prop="repository">
                  <el-select v-model="editConfig.infomation.repository" size="mini" style="width: 63%">
                    <el-option
                      v-for="item in returnWarehouseOptions"
                      v-for="item in repositoryOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
@@ -62,19 +62,14 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="salesHead">
                <el-form-item label="销售负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.salesHead"
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option
                      v-for="item in salesHeadOptions"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
@@ -92,22 +87,35 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="状态" prop="state">
                  <CommonSelectView :common-value="editConfig.infomation.state" :common-options="stateOptions" />
                <el-form-item label="状态" prop="status">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.status"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn" @click="editDropdownBox">
                      <i class="el-icon-setting"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <!-- 备注信息 -->
          <div class="basic-info-title">备注信息</div>
          <div class="address-view">
          <div class="basic-info-view">
            <el-row>
              <el-col :span="24">
                <el-form-item label="退货原因" prop="returnReason">
                <el-form-item label="退货原因" prop="reason">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.returnReason"
                    v-model="editConfig.infomation.reason"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -165,8 +173,9 @@
</template>
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesReturn, getUpdateSalesReturn } from "@/api/sales/salesReturn"
export default {
  name: "AddSalesReturnDialog",
  props: {
@@ -176,48 +185,30 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            salesReturnOrderNo: "THD20230521-11",
            selSourceOrder: "1",
            returnWarehouse: "1",
            salesHead: "5",
            returnDate: "",
            state: "",
            returnReason: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: { CommonSelectView, CommonFormTableView },
  components: { CommonFormTableView },
  computed: {},
  data() {
    return {
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        salesReturnOrderNo: [{ required: true, message: "请输入", trigger: "blur" }],
        returnWarehouse: [{ required: true, message: "请选择", trigger: "change" }],
        salesHead: [{ required: true, message: "请选择负责人", trigger: "change" }]
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        repository: [{ required: true, message: "请选择", trigger: "change" }],
        memberId: [{ required: true, message: "请选择负责人", trigger: "change" }]
      },
      salesHeadOptions: [
        // 销售负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      selSourceOrderOptions: [{ value: "1", label: "销售明细单" }], // 选择源单
      returnWarehouseOptions: [
      memberOptions: [],
      selSourceOrderOptions: [], // 选择源单
      repositoryOptions: [
        { value: "1", label: "总仓" },
        { value: "2", label: "赠品仓" },
        { value: "3", label: "其他仓" }
      ], // 退入仓库
      stateOptions: [], // 状态
      statusOptions: [], // 状态
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
        { value: "2", label: "英镑(£)" },
@@ -235,21 +226,101 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    setTableForm() {
      this.productTableList = {
        tableData: [
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesReturn(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSalesReturn(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        salesReturn: {
          clientId: data.clientId || 0,
          memberId: data.memberId || 0,
          number: data.number || "",
          products: [
          {
            id: "1",
            productName: "上海有限公司",
            other0: "ZDYBD03-1",
            other1: "12",
            other2: "5.00",
            other4: "3.00",
            other3: "2.00"
              amount: 0,
              desc: "",
              id: 0,
              name: "",
              number: "",
              price: 0,
              total: 0
          }
        ],
          reason: data.reason || "",
          repository: data.repository || "",
          returnDate: data.returnDate || "",
          status: data.status || 0
        }
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {},
    setTableForm() {
      this.productTableList = {
        tableData: [],
        tableColumn: [
          { label: "#", prop: "id", width: 40 },
          { label: "产品名称", prop: "productName", input: true, isRequird: true },
@@ -268,14 +339,7 @@
          { label: "描述", prop: "other8" }
        ]
      }
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {}
    }
  }
}
</script>
@@ -303,10 +367,17 @@
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/sales/salesReturn/index.vue
@@ -71,14 +71,14 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "销售退货单编号", prop: "salesReturnOrderNo", min: 120 },
          { label: "客户名称", prop: "customName", min: 90 },
          { label: "销售退货单编号", prop: "number", min: 120 },
          { label: "客户名称", prop: "clientId", min: 90 },
          { label: "退货日期", prop: "returnDate", min: 100 },
          { label: "状态", prop: "state" },
          { label: "退入仓库", prop: "returnWarehouse" },
          { label: "状态", prop: "status" },
          { label: "退入仓库", prop: "repository" },
          { label: "应退款", prop: "refundabe" },
          { label: "已退款", prop: "refunded" },
          { label: "销售负责人", prop: "salesHead" },
          { label: "销售负责人", prop: "memberId" },
          { label: "修改时间", prop: "modifyTime" }
        ]
      }
@@ -120,32 +120,14 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      this.editConfig.infomation = {
        customName: "",
        salesReturnOrderNo: "THD20230521-11",
        selSourceOrder: "1",
        returnWarehouse: "1",
        salesHead: "5",
        returnDate: "",
        state: "",
        returnReason: ""
      }
      this.editConfig.infomation = {}
    },
    // 编辑
    handleClick(row) {
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = {
        customName: "",
        salesReturnOrderNo: "THD20230521-11",
        selSourceOrder: "",
        returnWarehouse: "",
        salesHead: "",
        returnDate: "",
        state: "",
        returnReason: ""
      }
      this.editConfig.infomation = { ...row }
    }
  }
}
src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -21,32 +21,37 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="customName">
                <el-form-item label="客户名称" prop="clientId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.customName"></el-input>
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="单据编号" prop="documentNumber">
                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
                <el-form-item label="单据编号" prop="number">
                  <el-input v-model="editConfig.infomation.number"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售总单" prop="masterOrder">
                <el-form-item label="销售总单" prop="masterOrderId">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.masterOrder"></el-input>
                    <el-input v-model="editConfig.infomation.masterOrderId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="负责人" prop="owner">
                  <el-select v-model="editConfig.infomation.owner" placeholder="请选择" size="mini" style="width: 63%">
                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
                <el-form-item label="负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
                  >
                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
@@ -85,7 +90,13 @@
            产品管理
            <div style="margin-left: 400px">
              币种
              <el-select v-model="editConfig.infomation.currency" placeholder="请选择" size="mini" style="width: 63%">
              <el-select
                v-model="editConfig.infomation.currency"
                placeholder="请选择"
                size="mini"
                style="width: 63%"
                disabled
              >
                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
@@ -106,6 +117,7 @@
                      placeholder="请选择"
                      size="mini"
                      style="width: 104px; margin-left: 3px"
                      disabled
                    >
                      <el-option
                        v-for="item in discountOptions"
@@ -116,14 +128,20 @@
                      </el-option>
                    </el-select>
                  </template>
                  <el-input v-model="editConfig.infomation.discount"></el-input>
                  <el-input v-model="editConfig.infomation.discount" disabled></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="7" :offset="17">
                <el-form-item prop="discount">
                  <template slot="label">
                    <span>调整</span>
                    <el-select v-model="adjust" placeholder="请选择" size="mini" style="width: 74px; margin-left: 3px">
                    <el-select
                      v-model="adjust"
                      placeholder="请选择"
                      size="mini"
                      style="width: 74px; margin-left: 3px"
                      disabled
                    >
                      <el-option
                        v-for="item in adjustOptions"
                        :key="item.value"
@@ -133,7 +151,7 @@
                      </el-option>
                    </el-select>
                  </template>
                  <el-input v-model="editConfig.infomation.discount"></el-input>
                  <el-input v-model="editConfig.infomation.discount" disabled></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="7" :offset="17">
@@ -157,6 +175,8 @@
<script>
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
export default {
  name: "QuotationDialog",
  components: { CommonFormTableView },
@@ -167,15 +187,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            documentNumber: "AC6521",
            masterOrder: "",
            owner: "",
            currency: "",
            discount: "",
            total: "14.00"
          }
          infomation: {}
        }
      }
    }
@@ -186,19 +198,10 @@
      dialogWidth: "80%",
      editConfig: this.editCommonConfig,
      rules: {
        documentNumber: [{ required: true, message: "请输入", trigger: "blur" }],
        owner: [{ required: true, message: "请选择", trigger: "change" }]
        number: [{ required: true, message: "请输入", trigger: "blur" }],
        memberId: [{ required: true, message: "请选择", trigger: "change" }]
      },
      ownerOptions: [
        // 负责人
        { value: "1", label: "BOSS" },
        { value: "2", label: "Mia" },
        { value: "3", label: "财务" },
        { value: "4", label: "市场" },
        { value: "5", label: "系统管理员" },
        { value: "6", label: "销售" },
        { value: "7", label: "销售总监" }
      ],
      memberOptions: [],
      discount: "2",
      currencyOptions: [],
      discountOptions: [
@@ -221,8 +224,93 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: data.clientId || 0,
        masterOrderId: data.masterOrderId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ]
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {},
    setTableForm() {
      this.productTableList = {
        tableData: [
@@ -250,14 +338,7 @@
          { label: "描述", prop: "other8" }
        ]
      }
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {}
    }
  }
}
</script>
src/views/sales/subOrder/index.vue
@@ -77,13 +77,13 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "documentNumber", min: 120 }, // 单据编号
          { label: "客户名称", prop: "customName", min: 120 }, // 客户名称
          { label: "销售总单", prop: "masterOrder", min: 90 }, // 销售总单
          { label: "负责人", prop: "owner" }, // 负责人
          { label: "单据编号", prop: "number", min: 120 }, // 单据编号
          { label: "客户名称", prop: "clientId", min: 120 }, // 客户名称
          { label: "销售总单", prop: "masterOrderId", min: 90 }, // 销售总单
          { label: "负责人", prop: "memberId" }, // 负责人
          { label: "审批状态", prop: "approvalStatus" }, // 审批状态
          { label: "产品名称", prop: "productName" }, // 产品名称
          { label: "数量", prop: "number", min: 100 } // 数量
          { label: "数量", prop: "number1", min: 100 } // 数量
        ]
      }
      this.searchOptions = []
src/views/service/orderManage/AddOrderManageDialog.vue
@@ -177,6 +177,8 @@
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
export default {
  name: "AddOrderManageDialog",
  props: {
@@ -186,20 +188,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            orderNumber: "AC6521",
            orderName: "",
            orderType: "",
            contactName: "",
            repairSource: "",
            selSourceOrder: "",
            problemDesc: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
@@ -229,8 +218,87 @@
      approvalWorkflowOptions: [] // 审批流程
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: data.clientId || 0,
        masterOrderId: data.masterOrderId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ]
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
src/views/service/orderManage/index.vue
@@ -81,12 +81,12 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "工单编号", prop: "orderNumber", min: 100 }, // 工单编号
          { label: "客户名称", prop: "customName", min: 130 }, // 客户名称
          { label: "工单编号", prop: "number", min: 100 }, // 工单编号
          { label: "客户名称", prop: "clientId", min: 130 }, // 客户名称
          { label: "联系人姓名", prop: "contactName" }, // 联系人姓名
          { label: "服务人员", prop: "servicePerson" }, // 服务人员
          { label: "工单状态", prop: "orderStatus" }, // 工单状态
          { label: "报修来源", prop: "repairSource" }, // 报修来源
          { label: "服务人员", prop: "name" }, // 服务人员
          { label: "工单状态", prop: "orderType" }, // 工单状态
          { label: "报修来源", prop: "reportSourceId" }, // 报修来源
          { label: "工单类型", prop: "orderType" } // 工单类型
        ]
      }
src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -254,6 +254,8 @@
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
export default {
  name: "AddServiceContractDialog",
  props: {
@@ -263,27 +265,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            serviceContractNumber: "AC6521",
            owner: "5",
            contactName: "",
            salesOpportunity: "",
            contractOrder: "",
            quotation: "",
            contractType: "",
            signDate: "",
            startDate: "",
            endDate: "",
            contractStatus: "",
            serviceNumber: "",
            termsTreaty: "",
            notes: "",
            approvalWorkflow: "",
            approvalSteps: "",
            approvalPerson: "",
            approvalOpinion: ""
          }
          infomation: {}
        }
      }
    }
@@ -332,8 +314,94 @@
  },
  created() {
    this.setTableForm()
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: data.clientId || 0,
        masterOrderId: data.masterOrderId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ]
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {},
    setTableForm() {
      this.productTableList = {
        tableData: [
@@ -365,14 +433,7 @@
          { label: "描述", prop: "other8" }
        ]
      }
    },
    handleClose() {
      this.editConfig.visible = false
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
    setFormatClick() {}
    }
  }
}
</script>
src/views/service/serviceContract/index.vue
@@ -72,15 +72,15 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "服务合同编号", prop: "serviceContractNumber", min: 100 }, // 服务合同编号
          { label: "客户名称", prop: "customName", min: 120 }, // 客户名称
          { label: "签约日期", prop: "signDate" }, // 签约日期
          { label: "合同类型", prop: "contractType" }, // 合同类型
          { label: "合同状态", prop: "contractStatus" }, // 合同状态
          { label: "负责人", prop: "owner" }, // 负责人
          { label: "服务合同编号", prop: "number", min: 100 }, // 服务合同编号
          { label: "客户名称", prop: "clientId", min: 120 }, // 客户名称
          { label: "签约日期", prop: "signTime" }, // 签约日期
          { label: "合同类型", prop: "typeId" }, // 合同类型
          { label: "合同状态", prop: "statusId" }, // 合同状态
          { label: "负责人", prop: "memberId" }, // 负责人
          { label: "产品名称", prop: "productName" }, // 产品名称
          { label: "服务开始日", prop: "startDate" }, // 服务开始日
          { label: "服务到期日", prop: "endDate" }, // 服务到期日
          { label: "服务开始日", prop: "startTime" }, // 服务开始日
          { label: "服务到期日", prop: "endTime" }, // 服务到期日
          { label: "价税合计", prop: "priceTax" } // 价税合计
        ]
      }
src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
@@ -284,6 +284,8 @@
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
export default {
  name: "AddServiceFeeManageDialog",
  props: {
@@ -293,34 +295,7 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            customName: "",
            serviceCharger: "",
            customNumber: "",
            customerSize: "",
            customStatus: "",
            importantLevel: "",
            customType: "",
            customSource: "",
            serviceAgent: "",
            latestServiceDate: "",
            contactName: "",
            duties: "",
            phoneNumber: "",
            contactsEmail: "",
            operateRange: "",
            position: "",
            map: "",
            country: "1",
            province: "1",
            city: "1",
            region: "1",
            address: "",
            industry: "",
            companyNature: "",
            companyWeb: "",
            notes: ""
          }
          infomation: {}
        }
      }
    }
@@ -379,8 +354,87 @@
      isUnflod: true
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: data.clientId || 0,
        masterOrderId: data.masterOrderId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ]
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
src/views/service/serviceFeeManage/index.vue
@@ -80,17 +80,17 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "客户名称", prop: "customName", min: 120 }, // 客户名称
          { label: "客户名称", prop: "client", min: 120 }, // 客户名称
          { label: "客户类型", prop: "customType", min: 90, status: true }, // 客户类型
          { label: "销售负责人", prop: "salesHead" }, // 销售负责人
          { label: "销售负责人", prop: "member_id" }, // 销售负责人
          { label: "修改时间", prop: "modifyTime", min: 100 }, // 修改时间
          { label: "客户规模", prop: "customerSize" }, // 客户规模
          { label: "重要级别", prop: "importantLevel" }, // 重要级别
          { label: "客户编号", prop: "customNumber" }, // 客户编号
          { label: "客户编号", prop: "client_id" }, // 客户编号
          { label: "客户状态", prop: "customStatus" }, // 客户状态
          { label: "产品名称", prop: "productName" }, // 产品名称
          { label: "服务开始日期", prop: "startDate" }, // 服务开始日期
          { label: "服务到期日", prop: "endDate" } // 服务到期日
          { label: "服务到期日", prop: "latest_date" } // 服务到期日
        ]
      }
      this.searchOptions = []
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -165,6 +165,8 @@
<script>
import CommonSelectView from "@/components/makepager/CommonSelectView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
export default {
  name: "AddServiceFollowupDialog",
  props: {
@@ -215,8 +217,87 @@
      ]
    }
  },
  created() {},
  created() {
    this.getCommonData()
  },
  methods: {
    getCommonData() {
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 保存
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
          }
        } else {
          console.log("error submit")
          return false
        }
      })
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: data.clientId || 0,
        masterOrderId: data.masterOrderId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ]
      }
      return params
    },
    handleClose() {
      this.editConfig.visible = false
    },
src/views/service/serviceFollowup/index.vue
@@ -65,11 +65,11 @@
      this.tableList = {
        tableInfomation: [],
        tableColumn: [
          { label: "回访单编号", prop: "followupNumber", min: 80 }, // 回访单编号
          { label: "客户名称", prop: "customName", min: 130 }, // 客户名称
          { label: "联系人姓名", prop: "contactName" }, // 联系人姓名
          { label: "客户服务单", prop: "customServiceForm" }, // 客户服务单
          { label: "回访人", prop: "visitor" }, // 回访人
          { label: "回访单编号", prop: "number", min: 80 }, // 回访单编号
          { label: "客户名称", prop: "clientId", min: 130 }, // 客户名称
          { label: "联系人姓名", prop: "contactId" }, // 联系人姓名
          { label: "客户服务单", prop: "serviceId" }, // 客户服务单
          { label: "回访人", prop: "isVisit" }, // 回访人
          { label: "满意度", prop: "satisfaction" }, // 满意度
          { label: "修改时间", prop: "modifyTime" } // 修改时间
        ]