songshankun
2023-10-13 5e796658635bdfcb7806a49fd424ce08c7f8c4a3
Merge branch 'dev' into songshankun/add-token
37个文件已修改
1423 ■■■■■ 已修改文件
src/api/common/payment.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/CommonFormTableView.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/getClientName.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/AddClientManageDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/AddContactsDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/AddFollowupRecordsDialog.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/mixin/codeMixin.js 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/salesLead/AddSalesLeadDialog.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/salesLead/DetailSalesLead.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/salesLead/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/other/payment/receipt/index.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/other/payment/saleInvoice/index.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/AddContractManageDialog.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/AddMasterOrderDialog.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/AddQuotationDialog.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/DetailQuotation.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/index.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/AddRefundFormDialog.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/index.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/AddSalesDetailsDialog.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/DetailSpecification.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/index.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/DetailAdvanceDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/DetailOpportunity.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/AddSalesReturnDialog.vue 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/index.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/AddSubOrderDialog.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/clientServiceOrder/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/clientServiceOrder/mixin/codeMixin.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/AddServiceContractDialog.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/DetailServiceContract.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/index.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/common/payment.js
@@ -1,12 +1,16 @@
import request from "@/common/untils/request.js"
import axios from "axios"
// 获取收款计划
export const getCollectionPlanList = async (data) => {
  return await axios.get(`/api/serviceCollectionPlan/list`, {
    params: data
export function getCollectionPlanList(data) {
  return request({
    url: "/api/serviceCollectionPlan/list",
    method: "post",
    data
  })
}
// 添加收款计划
export function addCollectionPlan(data) {
  return request({
@@ -62,11 +66,14 @@
}
// 获取销售发票
export const getInvoiceList = async (data) => {
  return await axios.get(`/api/invoice/list`, {
    params: data
export function getInvoiceList(data) {
  return request({
    url: "/api/invoice/list",
    method: "post",
    data
  })
}
// 添加销售发票
export function addInvoice(data) {
  return request({
src/components/makepager/CommonFormTableView.vue
@@ -138,13 +138,13 @@
        >重算</el-button
      >
    </div>
    <div v-if="showSummary.total || showSummary.refundable" style="height: 42px; line-height: 42px">
    <div v-if="false && (showSummary.total || showSummary.refundable)" style="height: 42px; line-height: 42px" >
      <el-row :gutter="10">
        <el-col v-if="showSummary.total" :span="2" :offset="22">
        <el-col v-if="showSummary.total" :span="3" :offset="21">
          <span style="font-weight: bold">合计</span>
          <span style="margin-left: 10px">{{ total }}</span>
        </el-col>
        <el-col v-if="showSummary.refundable" :span="2" :offset="22">
        <el-col v-if="showSummary.refundable" :span="3" :offset="21">
          <span style="font-weight: bold">应退款</span>
          <span style="margin-left: 10px">0.00</span>
        </el-col>
src/store/modules/getClientName.js
@@ -84,6 +84,9 @@
        }
      })
    },
    getContactFilter({commit},newData){
      commit("contactNameList", newData)
    },
    geChance(context) {
      getSaleChanceList().then((res) => {
        if (res.code == 200) {
src/views/client/client/AddClientManageDialog.vue
@@ -29,7 +29,7 @@
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="this.editConfig.title !== '新建'|| isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
src/views/client/contacts/AddContactsDialog.vue
@@ -29,7 +29,7 @@
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="this.editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
src/views/client/contacts/index.vue
@@ -34,10 +34,10 @@
              @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="130" fixed="right">
              <el-table-column label="操作" width="120" fixed="right">
                <template slot-scope="scope">
                  <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                  <el-button @click="followupClick(scope.row)" type="text" size="small">跟进</el-button>
                  <!-- <el-button @click="followupClick(scope.row)" type="text" size="small">跟进</el-button> -->
                  <el-button @click="delClick(scope.row.id)" type="text" size="small">删除</el-button>
                </template>
              </el-table-column>
src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -28,7 +28,7 @@
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="this.editConfig.title !== '新建'  || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
@@ -340,6 +340,9 @@
import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
import SelectLeadDialog from "@/views/other/commonDialog/SelectLeadDialog"
import codeMixin from "./mixin/codeMixin";
import { getContactList } from "@/api/client/contacts"
import { mapActions  } from 'vuex';
export default {
  name: "AddFollowupRecordsDialog",
  mixins: [codeMixin],
@@ -450,6 +453,7 @@
    }
  },
  methods: {
    ...mapActions (['getContactFilter']),
    formInfo(){
      this.objCode.type='跟进记录编码'
      this.objCode.codeStandID = ''
@@ -521,9 +525,9 @@
      let follow_record = {
        follow_record: {
          client_id: this.clientId || 0,
          client_status_id: data.client_status_id || 0,
          client_status_id: data.client_status_id || null,
          contact_id: this.contactId || 0,
          contact_information_id: data.contact_information_id || 0,
          contact_information_id: data.contact_information_id || null,
          content: data.content || "",
          follow_time: data.follow_time || "",
          member_id: data.member_id || 0,
@@ -566,10 +570,16 @@
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(value, item) {
    async handleSelectClient(value, item) {
      if (value === "client") {
        this.clientId = item.id
        this.editConfig.infomation.client_name = item.name
        await getContactList({
          clientId:this.clientId
        }).then((res)=>{
          this.getContactFilter(res.data.list)
        })
        // console.log("clientId",this.clientId,this.editConfig.infomation.client_name)
      } else if (value === "contact") {
        this.contactId = item.id
        this.editConfig.infomation.contact_name = item.name
src/views/client/followupRecords/index.vue
@@ -263,7 +263,10 @@
    handleClick(row) {
      console.log(row)
      this.editConfig.title = "编辑"
      this.editConfig.infomation = { ...row, sale_chance_name: "", sales_leads_name: "" }
      let config=JSON.parse(JSON.stringify(row));
      config.client_status_id=config.client_status_id?config.client_status_id:null
      config.contact_information_id=config.contact_information_id?config.contact_information_id:null
      this.editConfig.infomation = { ...config, sale_chance_name: "", sales_leads_name: "" }
      this.editConfig.visible = true
    },
    // 删除
src/views/client/followupRecords/mixin/codeMixin.js
@@ -1,8 +1,8 @@
import WordInput from "@/components/wordInput";
import { getCodeStandardList } from "@/api/common/standard";
import WordInput from "@/components/wordInput"
import { getCodeStandardList } from "@/api/common/standard"
export default {
  components: {
    WordInput,
    WordInput
  },
  data() {
    return {
@@ -14,90 +14,88 @@
      codenumer: 0, //每次输入的编码
      codenumberList: [], //整条编码
      sum: 0,
      method:0,
      objCode: { name: "", page: 0, pageSize: 0, type: "跟进记录编码",codeStandID:'' },
      codeRule:{},
    };
      method: 0,
      objCode: { name: "", page: 0, pageSize: 0, type: "跟进记录编码", codeStandID: "" },
      codeRule: {}
    }
  },
  methods: {
    async getRCodeStandardList() {
      try {
        const res = await getCodeStandardList(this.objCode);
        this.codenumer = [];
        this.sum = 0;
        this.explain = "";
        if(res.data.code==200){
        const res = await getCodeStandardList(this.objCode)
        this.codenumer = []
        this.sum = 0
        this.explain = ""
        if (res.data.code == 200) {
          const {
            List = [],
            ID,
            AutoRule = {},
            Method,
          } = (res.data.data&&res.data.data.data) ? res.data.data.data[0] : [];
          this.codeRule= (res.data.data&&res.data.data.data) ? res.data.data.data[0]:{}
          let autoRule=AutoRule
          let method=Method?Method:0
          this.method=method
          let rules=List
          this.editConfig.infomation.ID=ID
            Method
          } = res.data.data && res.data.data.data ? res.data.data.data[0] : []
          this.codeRule = res.data.data && res.data.data.data ? res.data.data.data[0] : {}
          let autoRule = AutoRule
          let method = Method ? Method : 0
          this.method = method
          let rules = List
          this.editConfig.infomation.ID = ID
          if (method == 0 && res.data.data.data.length > 0) {
            console.log("sss")
            rules.forEach((item, index) => {
              // setTimeout(() => {
              //   this.codenumer = item.length;
              //   this.sum++;
              // }, 200);
              this.codenumer.push(item.Length);
              this.sum++;
              this.explain += item.Name + (index === rules.Length - 1 ? "" : "/");
            });
              this.codenumer.push(item.Length)
              this.sum++
              this.explain += item.Name + (index === rules.Length - 1 ? "" : "/")
            })
          }
          console.log(method)
          if (method == 1) {
            if (Object.keys(autoRule).length > 0) {
              this.isIdDisabled = true;
              this.isIdDisabled = true
              if (autoRule.PrefixMethod == 1) {
                let prefix = autoRule.PrefixValue.split("").length;
                this.codenumer.push(prefix);
                let prefix = autoRule.PrefixValue.split("").length
                this.codenumer.push(prefix)
                if (autoRule.SuffixMethod == 2) {
                  this.codenumer.push(8);
                  this.codenumer.push(8)
                }
                if (autoRule.AutoLength) {
                  this.codenumer.push(autoRule.AutoLength);
                  this.codenumer.push(autoRule.AutoLength)
                }
                this.sum = prefix + Number(autoRule.AutoLength);
                this.sum = prefix + Number(autoRule.AutoLength)
                this.codeList(
                  this.editConfig.infomation.number ? this.editConfig.infomation.number : autoRule.PrefixValue
                );
                return true;
                )
                return true
              }
            }
          }
          if(this.editConfig.infomation.id){
            this.codeList( this.editConfig.infomation.number);
          if (this.editConfig.title !== "新建") {
            this.codeList(this.editConfig.infomation.number)
          }
          this.$forceUpdate();
        }else{
          this.$message.error(res.data.msg?res.data.msg:'获取编码规范失败,请重试!')
          this.$forceUpdate()
        } else {
          this.$message.error(res.data.msg ? res.data.msg : "获取编码规范失败,请重试!")
        }
      } catch (err) {
        console.log(err);
        console.log(err)
      }
    },
    codeList(val) {
      console.log(val,'===val  codelist')
      this.inputValue = val;
      this.codenumberList = val.toString();
      this.editConfig.infomation.number =
        this.codenumberList.length > 0
          ? this.codenumberList.replace(/,/g, "")
          : "";
      console.log(this.codenumberList.replace(/,/g, ""));
      console.log(val, "===val  codelist")
      this.inputValue = val
      this.codenumberList = val.toString()
      this.editConfig.infomation.number = this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : ""
      console.log(this.codenumberList.replace(/,/g, ""))
    },
    // 配置编码规范的跳转
    numberClick(){
      window.open('http://www.fai365.com:9080/facilty','_blank')
    },
  },
};
    numberClick() {
      window.open("http://www.fai365.com:9080/facilty", "_blank")
    }
  }
}
src/views/client/salesLead/AddSalesLeadDialog.vue
@@ -26,7 +26,7 @@
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="this.editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
@@ -41,7 +41,7 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="name">
                <el-form-item label="意向客户名称" prop="name">
                  <el-input v-model="editConfig.infomation.name" style="width: 100%"></el-input>
                </el-form-item>
              </el-col>
@@ -70,14 +70,14 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机状态" prop="businessStatus">
                <el-form-item label="线索状态" prop="businessStatus">
                  <span>{{ editConfig.infomation.businessStatus }}</span>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="商机来源" prop="sales_sources_id">
                <el-form-item label="线索来源" prop="sales_sources_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.sales_sources_id"
src/views/client/salesLead/DetailSalesLead.vue
@@ -3,7 +3,7 @@
    <el-drawer :visible.sync="detailConfig.visible" size="80%" :before-close="handleClose" :wrapperClosable="false">
      <template slot="title">
        <div class="header">
          <span class="header-label">客户名称</span>
          <span class="header-label">销售线索</span>
          <span class="header-title">{{ detailConfig.infomation.name }}</span>
        </div>
      </template>
@@ -179,7 +179,7 @@
      }
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftStr: "意向客户名称",
          leftValue: item.name,
          rightStr: "销售线索编号",
          rightValue: item.number
@@ -193,11 +193,11 @@
        {
          leftStr: "手机号码",
          leftValue: item.contact_phone,
          rightStr: "商机状态",
          rightStr: "线索状态",
          rightValue: "新建"
        },
        {
          leftStr: "商机来源",
          leftStr: "线索来源",
          leftValue: item.sales_resources,
          rightStr: "负责人",
          rightValue: item.member_name
@@ -205,21 +205,27 @@
        {
          leftStr: "分配日期",
          leftValue: "",
          rightStr: "公海状态",
          // rightStr: "公海状态",
          // rightValue: ""
          rightStr: "创建时间",
          rightValue: ""
        },
        {
          leftStr: "创建时间",
          leftValue: "",
          rightStr: "创建人",
          rightValue: ""
        },
        {
          leftStr: "关闭原因",
          // leftStr: "创建时间",
          // leftValue: "",
          // rightStr: "创建人",
          // rightValue: ""
          leftStr: "创建人",
          leftValue: "",
          rightStr: "",
          rightValue: ""
        }
        },
        // {
        //   leftStr: "关闭原因",
        //   leftValue: "",
        //   rightStr: "",
        //   rightValue: ""
        // }
      ]
      this.dynamicInfoList = [
        {
src/views/client/salesLead/index.vue
@@ -31,10 +31,10 @@
              @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="160">
              <el-table-column label="操作" width="150">
                <template slot-scope="scope">
                  <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                  <el-button @click="followupClick(scope.row)" type="text" size="small">跟进</el-button>
                  <!-- <el-button @click="followupClick(scope.row)" type="text" size="small">跟进</el-button> -->
                  <el-button @click="advanceClick(scope.row)" type="text" size="small">推进</el-button>
                  <el-button @click="delClick(scope.row.id)" type="text" size="small">删除</el-button>
                </template>
src/views/other/payment/receipt/index.vue
@@ -146,6 +146,8 @@
    }
    this.getData()
  },
  mounted() {
  },
  methods: {
    setTable() {
      this.tableList = {
@@ -176,13 +178,28 @@
    },
    // 请求数据
    async getData() {
      // console.log()
      this.loading = true
      await getReceiptList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      let params = {}
      let sourceTyle = this.addConfig.keywordType === "销售明细单" ? 1 : 2
      if (this.addConfig.id) {
        params = {
          sourceID: this.addConfig.id,
          sourceType: sourceTyle,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize,
          client_id:this.addConfig.client_id,
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize,
          client_id:this.addConfig.client_id,
        }
      }
      await getReceiptList(params)
        .then((res) => {
          if (res.data.code === 200) {
            const resList = res?.data?.data?.data ?? []
src/views/other/payment/saleInvoice/index.vue
@@ -169,12 +169,25 @@
    // 请求数据
    async getData() {
      this.loading = true
      await getInvoiceList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      console.log(this.addConfig)
      let params = {}
      let sourceTyle = this.addConfig.keywordType === "销售明细单" ? 1 : 2
      if (this.addConfig.id) {
        params = {
          sourceID: this.addConfig.id,
          sourceType: sourceTyle,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      }
      await getInvoiceList(params)
        .then((res) => {
          if (res.data.code === 200) {
            if (res.data.data.data && res.data.data.data.length > 0) {
src/views/sales/contractManage/AddContractManageDialog.vue
@@ -27,7 +27,7 @@
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
@@ -35,6 +35,15 @@
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="合同名称" prop="name">
                  <div class="custom-name">
                    <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">
@@ -348,6 +357,7 @@
      console.log(data)
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        name: data.name || "",
        client_id: this.clientId || 0,
        file: "",
        member_id: data.memberId || 0,
src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -23,29 +23,25 @@
          <div v-if="isUnflod" class="basic-info-title">基本信息</div>
          <div class="basic-info-view">
            <el-row>
<!--              <el-col v-if="isUnflod" :span="12">-->
<!--                <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="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="number">
                  <WordInput
                      v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                      :codenumer="codenumer"
                      :sum="sum"
                      :disabled="editConfig.infomation.id || isIdDisabled"
                      :inputValue="inputValue"
                      @codeList="codeList"
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                  >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                      ></span
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -178,11 +174,11 @@
import { getAllData } from "@/api/client/client"
import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import WordInput from "@/components/wordInput.vue";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import WordInput from "@/components/wordInput.vue"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "QuotationDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -195,7 +191,7 @@
      }
    }
  },
  components: {WordInput, SelectClientDialog },
  components: { WordInput, SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
@@ -220,7 +216,7 @@
        infomation: {}
      },
      clientId: this.editCommonConfig.infomation.client_id,
      objCode: { name: "", page: 0, pageSize: 0, type: "销售总单编码",codeStandID:'' },
      objCode: { name: "", page: 0, pageSize: 0, type: "销售总单编码", codeStandID: "" }
    }
  },
  created() {
@@ -228,23 +224,23 @@
    this.getCommonData()
    this.formInfo()
  },
  watch:{
    'editCommonConfig.visible'(val){
      if(val){
  watch: {
    "editCommonConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editCommonConfig.infomation.codeStandID'(val){
    "editCommonConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData()
@@ -291,10 +287,10 @@
     * 强制刷新form组件
     * 外部更改表单值不会触发表单校验,导致即使有值夜被表单校验阻塞住
     */
    refresh(){
      this.refreshFlag=false
      requestAnimationFrame(()=>{
        this.refreshFlag=true
    refresh() {
      this.refreshFlag = false
      requestAnimationFrame(() => {
        this.refreshFlag = true
      })
    },
    saveParams() {
@@ -307,8 +303,8 @@
        money: data.money || 0,
        number: data.number || "",
        start_time: data.start_time || "",
        codeStandID:data.ID,
        codeRule:this.codeRule,
        codeStandID: data.ID,
        codeRule: this.codeRule
      }
      return params
    },
@@ -399,7 +395,7 @@
            font-size: 18px;
            cursor: pointer;
          }
          .el-autocomplete{
          .el-autocomplete {
            flex: 1;
          }
        }
src/views/sales/quotation/AddQuotationDialog.vue
@@ -27,21 +27,17 @@
              <el-col :span="12">
                <el-form-item label="报价编号" prop="number">
                  <WordInput
                      v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                      :codenumer="codenumer"
                      :sum="sum"
                      :disabled="editConfig.infomation.id || isIdDisabled"
                      :inputValue="inputValue"
                      @codeList="codeList"
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                  >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                      ></span
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
@@ -71,11 +67,11 @@
                  </div>
                </el-form-item>
              </el-col>
<!--              <el-col :span="12">-->
<!--                <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="number">-->
              <!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
              <!--                </el-form-item>-->
              <!--              </el-col>-->
              <el-col :span="12">
                <el-form-item label="报价单状态" prop="quotation_status_id">
                  <div class="common-select">
@@ -316,10 +312,10 @@
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "QuotationDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -391,7 +387,7 @@
      tableData: [],
      productId: 1,
      isNoProduct: true,
      objCode: { name: "", page: 0, pageSize: 0, type: "报价编码",codeStandID:'' },
      objCode: { name: "", page: 0, pageSize: 0, type: "报价编码", codeStandID: "" }
    }
  },
  created() {
@@ -402,23 +398,23 @@
    this.getCommonData()
    this.formInfo()
  },
  watch:{
    'editConfig.visible'(val){
      if(val){
  watch: {
    "editConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editConfig.infomation.codeStandID'(){
    "editConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData()
@@ -484,10 +480,10 @@
     * 强制刷新form组件
     * 外部更改表单值不会触发表单校验,导致即使有值夜被表单校验阻塞住
     */
    refresh(){
      this.refreshFlag=false
      requestAnimationFrame(()=>{
        this.refreshFlag=true
    refresh() {
      this.refreshFlag = false
      requestAnimationFrame(() => {
        this.refreshFlag = true
      })
    },
    saveParams() {
@@ -504,8 +500,8 @@
        sale_chance_id: this.saleChanceId || 0,
        validity_date: data.validity_date || "",
        products: this.tableData,
        codeStandID:data.ID,
        codeRule:this.codeRule,
        codeStandID: data.ID,
        codeRule: this.codeRule
      }
      return params
    },
@@ -693,8 +689,8 @@
            cursor: pointer;
          }
        }
        .custom-name{
          .el-autocomplete{
        .custom-name {
          .el-autocomplete {
            flex: 1;
          }
        }
src/views/sales/quotation/DetailQuotation.vue
@@ -23,7 +23,7 @@
                <div>跟进记录<el-badge type="primary" :value="2"> </el-badge></div>
              </template> -->
            <!-- </el-tab-pane> -->
            <el-tab-pane label="销售明细单" name="detail"></el-tab-pane>
            <!-- <el-tab-pane label="销售明细单" name="detail"></el-tab-pane> -->
            <el-tab-pane label="服务合同" name="serviceContract"></el-tab-pane>
          </el-tabs>
        </div>
src/views/sales/quotation/index.vue
@@ -6,15 +6,10 @@
    <div class="filter" v-else>
      <div class="filter-card">
        <CommonSearch
            :show-add="false"
            :amount-view="false"
            placeholder="请输入报价单号"
            @searchClick="onFilterSearch"
        >
        <CommonSearch :show-add="false" :amount-view="false" placeholder="请输入报价单号" @searchClick="onFilterSearch">
          <template slot="leftButton">
            <el-button size="small" type="primary"  @click="addBtnClick">新建</el-button>
<!--            <el-button size="small"  @click="delClick">删除</el-button>-->
            <el-button size="small" type="primary" @click="addBtnClick">新建</el-button>
            <!--            <el-button size="small"  @click="delClick">删除</el-button>-->
          </template>
        </CommonSearch>
      </div>
@@ -24,19 +19,19 @@
      <div class="body-card">
        <div class="list-view">
          <TableCommonView
              ref="tableListRef"
              :table-list="tableList"
              @selClientClick="selClientClick"
              @selContactsClick="selContactsClick"
              @selCommonClick="selCommonClick"
              @getSelectArray="getSelectArray"
              @selTableCol="selTableCol"
            ref="tableListRef"
            :table-list="tableList"
            @selClientClick="selClientClick"
            @selContactsClick="selContactsClick"
            @selCommonClick="selCommonClick"
            @getSelectArray="getSelectArray"
            @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="90">
                <template slot-scope="scope">
                  <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                   <el-button @click="deleteItem(scope.row.id)" type="text" size="small">删除</el-button>
                  <el-button @click="deleteItem(scope.row.id)" type="text" size="small">删除</el-button>
                </template>
              </el-table-column>
            </template>
@@ -131,7 +126,7 @@
        label: "报价单号"
      },
      tableColumn: [
        { label: "报价单号", prop: "number", min: 90, isCommonClick: true ,default:true}, // 报价单号
        { label: "报价单号", prop: "number", min: 90, isCommonClick: true, default: true }, // 报价单号
        { label: "客户名称", prop: "client_name", min: 120, isClientClick: true }, // 客户名称
        { label: "联系人姓名", prop: "contact_name", min: 90, isContactClick: true }, // 联系人姓名
        { label: "销售负责人", prop: "member_name" }, // 销售负责人
@@ -142,7 +137,7 @@
        { label: "数量", prop: "productNumber", isProductAmount: true },
        { label: "价税合计", prop: "priceTax", isProductTotal: true }
      ],
      showCol:["报价单号", "客户名称", "联系人姓名", "销售负责人", "有效期", "产品名称", "数量", "价税合计"]
      showCol: ["报价单号", "客户名称", "联系人姓名", "销售负责人", "有效期", "产品名称", "数量", "价税合计"]
    }
  },
  created() {
@@ -151,7 +146,7 @@
      this.search_map = {}
    } else {
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
        [this.addConfig.id_name]: this.addConfig.id
      }
    }
    this.getData(this.search_map)
@@ -159,13 +154,13 @@
  methods: {
    setTable() {
      this.tableList = {
        selectIndex:true,
        selectIndex: true,
        tableInfomation: [],
        allcol: [],
        showcol: this.showCol,
        tableColumn:this.setColumnVisible(this.showCol)
        tableColumn: this.setColumnVisible(this.showCol)
      }
      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
@@ -173,17 +168,17 @@
        this.searchOptions.push({ value: value, label: label })
      }
    },
    setColumnVisible(showCol){
      return  this.tableColumn.map(ele=>{
    setColumnVisible(showCol) {
      return this.tableColumn.map((ele) => {
        return {
          ...ele,
          isShowColumn:showCol.includes(ele.label)
          isShowColumn: showCol.includes(ele.label)
        }
      })
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setColumnVisible(val);
      this.showcol = val
      this.tableList.tableColumn = this.setColumnVisible(val)
    },
    // 请求数据
    async getData() {
@@ -222,8 +217,8 @@
        })
    },
    // 搜索
    onFilterSearch(searchText){
      this.search_map.number = searchText ?? ''
    onFilterSearch(searchText) {
      this.search_map.number = searchText ?? ""
      this.pagerOptions.currPage = 1
      this.getData()
    },
@@ -273,22 +268,22 @@
        cancelButtonText: "取消",
        type: "warning"
      })
          .then(() => {
            getDelQuotation({ids: [id]}).then((response) => {
              if (response.code === 200) {
                this.$message.success("删除成功")
                this.getData()
              } else {
                this.$message.warning("删除失败")
              }
            })
          })
          .catch((err) => {
            if (err !== 'cancel') {
              console.error(err)
        .then(() => {
          getDelQuotation({ ids: [id] }).then((response) => {
            if (response.code === 200) {
              this.$message.success("删除成功")
              this.getData()
            } else {
              this.$message.warning("删除失败")
            }
          })
        })
        .catch((err) => {
          if (err !== "cancel") {
            console.error(err)
            this.$message.warning("删除失败")
          }
        })
    },
    getSelectArray(val) {
      console.log(val)
@@ -327,15 +322,15 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.quotation{
.quotation {
  height: 100%;
  overflow: hidden;
  .filter{
  .filter {
    height: 80px;
    display: flex;
    align-items: center;
    padding: 12px 20px 0 20px;
    &-card{
    &-card {
      height: 80px;
      display: flex;
      align-items: center;
@@ -346,7 +341,7 @@
      background-color: #fff;
    }
  }
  .body{
  .body {
    box-sizing: border-box;
    padding: 10px 20px;
    border-radius: 12px;
src/views/sales/refundForm/AddRefundFormDialog.vue
@@ -24,10 +24,26 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="退款单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-autocomplete
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -50,32 +66,12 @@
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="退款单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                    ></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售退货单" prop="sale_return_nunber">
                  <div class="custom-name">
                    <el-autocomplete
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.sale_return_nunber"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -103,7 +99,7 @@
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="memberId">
                  <el-select
                  style="width:100%"
                    style="width: 100%"
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
@@ -116,7 +112,7 @@
              <el-col :span="12">
                <el-form-item label="退款日期" prop="refundDate">
                  <el-date-picker
                  style="width:100%"
                    style="width: 100%"
                    v-model="editConfig.infomation.refundDate"
                    value-format="yyyy-MM-dd"
                    type="date"
@@ -129,7 +125,7 @@
                <el-form-item label="付款方式" prop="paymentTypeId">
                  <div class="common-select">
                    <el-select
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.paymentTypeId"
                      placeholder="请选择"
                      class="common-select-sel"
@@ -151,7 +147,7 @@
                <el-form-item label="账户" prop="bankAccountId">
                  <div class="common-select">
                    <el-select
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.bankAccountId"
                      placeholder="请选择"
                      class="common-select-sel"
@@ -168,7 +164,7 @@
                <el-form-item label="是否开票" prop="isInvoice">
                  <div class="common-select">
                    <el-select
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.isInvoice"
                      placeholder="请选择"
                      class="common-select-sel"
@@ -189,7 +185,7 @@
              <el-col :span="24">
                <el-form-item label="退款原因" prop="reason" label-width="15%">
                  <el-input
                  style="width:100%"
                    style="width: 100%"
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.reason"
@@ -317,10 +313,10 @@
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
import { getPaymentTypeList } from "@/api/common/payment"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "AddRefundFormDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -389,27 +385,27 @@
    this.$store.dispatch("geReturnList")
    this.setTableForm()
    this.getCommonData()
    this.formInfo();
    this.formInfo()
  },
  watch:{
    'editClientManageConfig.visible'(val){
      if(val){
  watch: {
    "editClientManageConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editClientManageConfig.infomation.codeStandID'(){
    "editClientManageConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.type='销售退款编码'
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.type = "销售退款编码"
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
    },
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData().then((res) => {
        this.memberOptions = res.data.member
@@ -485,8 +481,7 @@
          sourceId: this.sourceId || 0,
          sourceType: 1
        },
        codeRule:this.codeRule,
        codeRule: this.codeRule
      }
      return params
    },
src/views/sales/refundForm/index.vue
@@ -7,15 +7,15 @@
    <div v-else class="filter">
      <div class="filter-card">
        <CommonSearch
            :show-add="false"
            :show-download="false"
            :amount-view="false"
            :show-action-btn="false"
            placeholder="请输入退款单编号"
            @searchClick="onFilterSearch"
          :show-add="false"
          :show-download="false"
          :amount-view="false"
          :show-action-btn="false"
          placeholder="请输入退款单编号"
          @searchClick="onFilterSearch"
        >
          <template slot="leftButton">
            <el-button size="small" type="primary"  @click="addBtnClick">新建</el-button>
            <el-button size="small" type="primary" @click="addBtnClick">新建</el-button>
            <!-- <el-button size="small"  @click="delClick">删除</el-button> -->
          </template>
        </CommonSearch>
@@ -26,12 +26,12 @@
      <div class="body-card">
        <div class="list-view">
          <TableCommonView
              ref="tableListRef"
              :table-list="tableList"
              @selClientClick="selClientClick"
              @selCommonClick="selCommonClick"
              @getSelectArray="getSelectArray"
              @selTableCol="selTableCol"
            ref="tableListRef"
            :table-list="tableList"
            @selClientClick="selClientClick"
            @selCommonClick="selCommonClick"
            @getSelectArray="getSelectArray"
            @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="100">
@@ -136,7 +136,7 @@
        // { label: "修改时间", prop: "modifyTime" },
        { label: "价税合计", prop: "amountTotal" }
      ],
      showCol:["退款单编号", "客户名称", "退款日期", "账户", "是否开票", "付款方式", "销售负责人", "价税合计"]
      showCol: ["退款单编号", "客户名称", "退款日期", "账户", "是否开票", "付款方式", "销售负责人", "价税合计"]
    }
  },
  created() {
@@ -157,9 +157,9 @@
        tableInfomation: [],
        allcol: [],
        showcol: this.showCol,
        tableColumn:this.setColumnVisible(this.showCol)
        tableColumn: this.setColumnVisible(this.showCol)
      }
      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
@@ -167,27 +167,37 @@
        this.searchOptions.push({ value: value, label: label })
      }
    },
    setColumnVisible(showCol){
      return  this.tableColumn.map(ele=>{
    setColumnVisible(showCol) {
      return this.tableColumn.map((ele) => {
        return {
          ...ele,
          isShowColumn:showCol.includes(ele.label)
          isShowColumn: showCol.includes(ele.label)
        }
      })
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setColumnVisible(val);
      this.showcol = val
      this.tableList.tableColumn = this.setColumnVisible(val)
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesRefundList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      let params = {}
      if (this.addConfig.id) {
        params = {
          sourceID: this.addConfig.id,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      }
      await getSalesRefundList(params)
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
@@ -218,9 +228,9 @@
        })
    },
    // 搜索
    onFilterSearch(searchText){
    onFilterSearch(searchText) {
      this.keyword = searchText ?? ""
      this.keywordType = '退款单编号'
      this.keywordType = "退款单编号"
      this.getData()
    },
    // 新建
@@ -239,22 +249,22 @@
    // 删除
    delClick(rowID) {
      // if (this.selValueList && this.selValueList.length > 0) {
        this.$confirm("是否确认删除?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            getDelSalesRefund({ ids: [rowID] }).then((response) => {
              if (response.code === 200) {
                this.$message.success("删除成功")
                this.getData()
              } else {
                this.$message.warning("删除失败")
              }
            })
      this.$confirm("是否确认删除?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          getDelSalesRefund({ ids: [rowID] }).then((response) => {
            if (response.code === 200) {
              this.$message.success("删除成功")
              this.getData()
            } else {
              this.$message.warning("删除失败")
            }
          })
          .catch(() => {})
        })
        .catch(() => {})
      // } else {
      //   this.$message.warning("请至少选择一条记录")
      // }
@@ -293,12 +303,12 @@
.refund-form {
  height: 100%;
  overflow: hidden;
  .filter{
  .filter {
    height: 80px;
    display: flex;
    align-items: center;
    padding: 12px 20px 0 20px;
    &-card{
    &-card {
      height: 80px;
      display: flex;
      align-items: center;
@@ -309,7 +319,7 @@
      background-color: #fff;
    }
  }
  .body{
  .body {
    box-sizing: border-box;
    padding: 10px 20px;
    border-radius: 12px;
src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -24,10 +24,26 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="订单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-autocomplete
                      style="width:100%;"
                      style="width: 100%"
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -36,12 +52,17 @@
                      "
                      value-key="name"
                      @select="handleSelectClient('client', $event)"
                      :disabled="isNameChanceEdit"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick('client')">
                    <div v-if="!isNameChanceEdit" class="common-select-btn" @click="selClientClick('client')">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div
                      v-if="editConfig.infomation.client_name && editConfig.infomation.client_name.length > 0"
                      v-if="
                        editConfig.infomation.client_name &&
                        editConfig.infomation.client_name.length > 0 &&
                        !isNameChanceEdit
                      "
                      class="common-select-btn"
                      @click="clearupClient('client')"
                    >
@@ -50,31 +71,12 @@
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="订单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                    ></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售机会" prop="saleChanceId">
                  <div class="custom-name">
                    <el-autocomplete
                      style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.sale_chance_name"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -83,12 +85,17 @@
                      "
                      value-key="name"
                      @select="handleSelectClient('chance', $event)"
                      :disabled="isNameChanceEdit"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick('chance')">
                    <div v-if="!isNameChanceEdit" class="common-select-btn" @click="selClientClick('chance')">
                      <i class="el-icon-circle-plus-outline"></i>
                    </div>
                    <div
                      v-if="editConfig.infomation.sale_chance_name && editConfig.infomation.sale_chance_name.length > 0"
                      v-if="
                        editConfig.infomation.sale_chance_name &&
                        editConfig.infomation.sale_chance_name.length > 0 &&
                        !isNameChanceEdit
                      "
                      class="common-select-btn"
                      @click="clearupClient('chance')"
                    >
@@ -117,7 +124,7 @@
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    style="width:100%"
                    style="width: 100%"
                  >
                  </el-date-picker>
                </el-form-item>
@@ -125,7 +132,6 @@
              <el-col :span="12">
                <el-form-item label="销售负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
@@ -143,7 +149,7 @@
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    style="width:100%"
                    style="width: 100%"
                  >
                  </el-date-picker>
                </el-form-item>
@@ -190,7 +196,7 @@
              <el-col :span="12">
                <el-form-item label="收货地址" prop="address">
                  <el-input
                    style="width:100%"
                    style="width: 100%"
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.address"
@@ -228,7 +234,7 @@
              <el-col :span="24">
                <el-form-item label="条款与条件" prop="conditions" label-width="15%">
                  <el-input
                    style="width:100%;"
                    style="width: 100%"
                    type="textarea"
                    :autosize="{ minRows: 4 }"
                    v-model="editConfig.infomation.conditions"
@@ -378,10 +384,10 @@
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
import AddCollectionPlan from "@/views/other/payment/collectionPlan/AddCollectionPlan"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "AddSalesDetailsDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -405,7 +411,7 @@
  },
  data() {
    return {
      dialogWidth: "60%",
      dialogWidth: "50%",
      editConfig: this.editCommonConfig,
      rules: {
        client_name: [{ required: true, message: "请选择客户名称", trigger: "change" }],
@@ -445,7 +451,8 @@
        title: "新建",
        infomation: {}
      },
      amountTotal: 0
      amountTotal: 0,
      isNameChanceEdit: false
    }
  },
  created() {
@@ -453,27 +460,33 @@
    this.$store.dispatch("geChance")
    this.setTableForm()
    this.getCommonData()
    this.formInfo();
    this.formInfo()
    if (this.editConfig.title === "新建" && this.editConfig.infomation.client_name.length > 0) {
      this.isNameChanceEdit = true
    }
    // else {
    // }
  },
  watch:{
    'editClientManageConfig.visible'(val){
      if(val){
  watch: {
    "editClientManageConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editClientManageConfig.infomation.codeStandID'(){
    "editClientManageConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.type='销售明细编码'
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.type = "销售明细编码"
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
    },
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData()
        .then((res) => {
@@ -561,7 +574,7 @@
        logisticCompany: data.logisticCompany || "",
        logisticCost: data.logisticCost || 0,
        logisticNumber: data.logisticNumber || "",
        codeRule:this.codeRule,
        codeRule: this.codeRule
      }
      let params = {}
      if (this.editConfig.title === "新建") {
@@ -662,7 +675,7 @@
          { label: "产品名称", prop: "name", productName: true, isRequird: true },
          { label: "产品编号", prop: "number" },
          { label: "数量", prop: "amount", inputNumber: true, isRequird: true },
          { label: "销售单价", prop: "price",inputFloat: true  },
          { label: "销售单价", prop: "price", inputFloat: true },
          { label: "价税合计", prop: "total", inputFloat: true }
        ]
      }
@@ -722,8 +735,8 @@
<style lang="scss" scoped>
::v-deep {
  .iframe-dialog .el-dialog__body {
    .el-form{
      .el-form-item{
    .el-form {
      .el-form-item {
        width: 100%;
      }
    }
src/views/sales/salesDetails/DetailSpecification.vue
@@ -48,7 +48,7 @@
            <el-tab-pane label="销售发票" name="invoice"></el-tab-pane>
            <el-tab-pane label="销售退货单" name="return"> </el-tab-pane>
            <el-tab-pane label="服务合同" name="serviceContract"></el-tab-pane>
            <el-tab-pane label="销售退款单" name="refundForm"></el-tab-pane>
            <!-- <el-tab-pane label="销售退款单" name="refundForm"></el-tab-pane> -->
          </el-tabs>
        </div>
        <div v-if="activeName === 'first'" class="detail">
src/views/sales/salesDetails/index.vue
@@ -7,15 +7,15 @@
    <div v-else class="filter">
      <div class="filter-card">
        <CommonSearch
            :show-add="false"
            :show-download="false"
            :amount-view="false"
            :show-action-btn="false"
            placeholder="请输入订单编号"
            @searchClick="onFilterSearch"
          :show-add="false"
          :show-download="false"
          :amount-view="false"
          :show-action-btn="false"
          placeholder="请输入订单编号"
          @searchClick="onFilterSearch"
        >
          <template slot="leftButton">
            <el-button size="small" type="primary"  @click="addBtnClick">新建</el-button>
            <el-button size="small" type="primary" @click="addBtnClick">新建</el-button>
            <!-- <el-button size="small"  @click="delClick">删除</el-button> -->
          </template>
        </CommonSearch>
@@ -26,13 +26,13 @@
      <div class="body-card">
        <div class="list-view">
          <TableCommonView
              ref="tableListRef"
              :show-summary="showSummary"
              :table-list="tableList"
              @selClientClick="selClientClick"
              @selCommonClick="selCommonClick"
              @getSelectArray="getSelectArray"
              @selTableCol="selTableCol"
            ref="tableListRef"
            :show-summary="showSummary"
            :table-list="tableList"
            @selClientClick="selClientClick"
            @selCommonClick="selCommonClick"
            @getSelectArray="getSelectArray"
            @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="90">
@@ -125,7 +125,7 @@
        infomation: {}
      },
      showSummary: {
        show: true,
        show: false,
        sumProp: [
          "receiveTotalAmount",
          "total",
@@ -161,7 +161,7 @@
        infomation: {}
      },
      tableColumn: [
        { label: "订单编号", prop: "number", isCommonClick: true ,default: true},
        { label: "订单编号", prop: "number", isCommonClick: true, default: true },
        { label: "客户名称", prop: "client_name", isClientClick: true },
        { label: "签约日期", prop: "signTime", width: 150 },
        { label: "销售负责人", prop: "member_name" },
@@ -176,7 +176,21 @@
        { label: "销售单价", prop: "taxUnitPrice", isProductPrice: true },
        { label: "价税合计", prop: "priceTax", isProductTotal: true }
      ],
      showCol:["订单编号", "客户名称", "签约日期", "销售负责人", "已收总额", "合计", "应收余额", "已开票金额", "未开票金额", "产品名称", "数量", "销售单价", "价税合计"]
      showCol: [
        "订单编号",
        "客户名称",
        "签约日期",
        "销售负责人",
        "已收总额",
        "合计",
        "应收余额",
        "已开票金额",
        "未开票金额",
        "产品名称",
        "数量",
        "销售单价",
        "价税合计"
      ]
    }
  },
  created() {
@@ -197,9 +211,9 @@
        tableInfomation: [],
        allcol: [],
        showcol: this.showCol,
        tableColumn:this.setColumnVisible(this.showCol)
        tableColumn: this.setColumnVisible(this.showCol)
      }
      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
@@ -207,27 +221,37 @@
        this.searchOptions.push({ value: value, label: label })
      }
    },
    setColumnVisible(showCol){
      return  this.tableColumn.map(ele=>{
    setColumnVisible(showCol) {
      return this.tableColumn.map((ele) => {
        return {
          ...ele,
          isShowColumn:showCol.includes(ele.label)
          isShowColumn: showCol.includes(ele.label)
        }
      })
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setColumnVisible(val);
      this.showcol = val
      this.tableList.tableColumn = this.setColumnVisible(val)
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesDetailsList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      let params = {}
      if (this.addConfig.id) {
        params = {
          saleChanceId: this.addConfig.id,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      }
      await getSalesDetailsList(params)
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
@@ -256,8 +280,8 @@
        })
    },
    // 搜索
    onFilterSearch(searchText){
      this.keyword = searchText ?? ''
    onFilterSearch(searchText) {
      this.keyword = searchText ?? ""
      this.keywordType = "订单编号"
      this.pagerOptions.currPage = 1
      this.getData()
@@ -277,24 +301,24 @@
    },
    // 删除
    delClick(rowID) {
      console.log(rowID,"xxxxshanchu")
      console.log(rowID, "xxxxshanchu")
      // if (this.selValueList && this.selValueList.length > 0) {
        this.$confirm("是否确认删除?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            getDelSalesDetails({ ids: [rowID] }).then((response) => {
              if (response.code === 200) {
                this.$message.success("删除成功")
                this.getData()
              } else {
                this.$message.warning("删除失败")
              }
            })
      this.$confirm("是否确认删除?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          getDelSalesDetails({ ids: [rowID] }).then((response) => {
            if (response.code === 200) {
              this.$message.success("删除成功")
              this.getData()
            } else {
              this.$message.warning("删除失败")
            }
          })
          .catch(() => {})
        })
        .catch(() => {})
      // } else {
      //   this.$message.warning("请至少选择一条记录")
      // }
@@ -349,12 +373,12 @@
.sales-details {
  height: 100%;
  overflow: hidden;
  .filter{
  .filter {
    height: 80px;
    display: flex;
    align-items: center;
    padding: 12px 20px 0 20px;
    &-card{
    &-card {
      height: 80px;
      display: flex;
      align-items: center;
@@ -365,7 +389,7 @@
      background-color: #fff;
    }
  }
  .body{
  .body {
    box-sizing: border-box;
    padding: 10px 20px;
    border-radius: 12px;
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -8,7 +8,8 @@
      append-to-body
      custom-class="iframe-dialog"
    >
      <el-form v-if="refreshFlag"
      <el-form
        v-if="refreshFlag"
        ref="form"
        :model="editConfig.infomation"
        :rules="rules"
@@ -23,31 +24,36 @@
          <div class="basic-info-title">机会基本信息</div>
          <div class="basic-info-view">
            <el-row>
<!--              <el-col :span="12">-->
<!--                <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="number">
                 <WordInput
                     v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                     :codenumer="codenumer"
                     :sum="sum"
                     :disabled="editConfig.infomation.id || isIdDisabled"
                     :inputValue="inputValue"
                     @codeList="codeList"
                 />
                 <span v-else-if="method == 0" style="color: #f56c6c"
                 >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                      ></span
                 >
                 <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
               </el-form-item>
             </el-col>
              <!--              <el-col :span="12">-->
              <!--                <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="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="机会名称" prop="name">
                  <div class="custom-name">
                    <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="client_name" ref="clientName">
                  <div class="custom-name">
@@ -74,15 +80,7 @@
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="机会名称" prop="name">
                  <div class="custom-name">
                    <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="contact_name">
                  <div class="custom-name">
@@ -110,7 +108,7 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机来源" prop="sales_sources_id">
                <el-form-item label="机会来源" prop="sales_sources_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.sales_sources_id"
@@ -132,7 +130,7 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="商机类型" prop="sale_type_id">
                <el-form-item label="机会类型" prop="sale_type_id">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.sale_type_id"
@@ -572,11 +570,11 @@
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
import { getCityList } from "@/api/common/address"
import WordInput from "@/components/wordInput.vue";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import WordInput from "@/components/wordInput.vue"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "AddSalesOpportunityDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -589,7 +587,7 @@
      }
    }
  },
  components: {WordInput, SelectClientDialog, SelectContactDialog },
  components: { WordInput, SelectClientDialog, SelectContactDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
@@ -603,7 +601,7 @@
  },
  data() {
    return {
      refreshFlag:true,
      refreshFlag: true,
      dialogWidth: "50%",
      editConfig: this.editCommonConfig,
      rules: {
@@ -615,7 +613,7 @@
        currency: [{ required: true, message: "请选择币种", trigger: "change" }],
        expected_time: [{ required: true, message: "请选择预计成交日期", trigger: "change" }],
        projected_amount: [{ required: true, message: "请输入预计合同金额", trigger: "blur" }],
        client_name: [{ required: true, message: "请选择客户", trigger: "change" }],
        client_name: [{ required: true, message: "请选择客户", trigger: "change" }]
      },
      businessSourceOptions: [],
      memberOptions: [],
@@ -642,7 +640,7 @@
      restaurants: [],
      clientId: this.editCommonConfig.infomation.client_id,
      contactId: this.editCommonConfig.infomation.contact_id,
      objCode: { name: "", page: 0, pageSize: 0, type: "销售机会编码",codeStandID:'' },
      objCode: { name: "", page: 0, pageSize: 0, type: "销售机会编码", codeStandID: "" }
    }
  },
  created() {
@@ -652,25 +650,25 @@
      this.getCityList(this.editConfig.infomation.province_id, "edit")
    }
    this.getCommonData()
    this.formInfo();
    this.formInfo()
  },
  watch:{
    'editConfig.visible'(val){
      if(val){
  watch: {
    "editConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editConfig.infomation.codeStandID'(){
    "editConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
      this.getRCodeStandardList()
    },
    getCommonData() {
      this.editConfig.infomation.country_id = 1
@@ -774,8 +772,8 @@
        remark: data.remark || "",
        detail_address: data.detail_address || "",
        codeStandID:data.ID,
        codeRule:this.codeRule,
        codeStandID: data.ID,
        codeRule: this.codeRule
      }
      return params
    },
@@ -823,10 +821,10 @@
     * 强制刷新form组件
     * 外部更改表单值不会触发表单校验,导致即使有值夜被表单校验阻塞住
     */
    refresh(){
      this.refreshFlag=false
      requestAnimationFrame(()=>{
        this.refreshFlag=true
    refresh() {
      this.refreshFlag = false
      requestAnimationFrame(() => {
        this.refreshFlag = true
      })
    },
    // 清除已选择用户
@@ -894,8 +892,8 @@
            flex: 1;
          }
        }
        .custom-name{
          .el-autocomplete{
        .custom-name {
          .el-autocomplete {
            flex: 1;
          }
        }
src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
@@ -108,6 +108,10 @@
      }).then((res) => {
        if (res.code === 200) {
          this.handleClose()
          this.$emit('pushed',{
            id: this.commonConfig.id,
            step: stepId
          })
        }
      })
    }
src/views/sales/salesOpportunity/DetailOpportunity.vue
@@ -256,7 +256,7 @@
        </div>
      </div>
      <!-- 推进 -->
      <DetailAdvanceDialog v-if="advanceConfig.visible" :advance-config="advanceConfig" />
      <DetailAdvanceDialog v-if="advanceConfig.visible" :advance-config="advanceConfig" @pushed="updatePushData" />
    </el-drawer>
  </div>
</template>
@@ -268,6 +268,7 @@
import ServiceContract from "@/views/service/serviceContract"
import DetailAdvanceDialog from "@/views/sales/salesOpportunity/DetailAdvanceDialog"
import { getSaleStageList } from "@/api/sales/salesOpportunity"
import {getAllData} from "@/api/client/client";
export default {
  name: "DetailClientManage",
  props: {
@@ -285,6 +286,7 @@
  computed: {},
  data() {
    return {
      statusList: [],
      detailConfig: this.opportunityDetail,
      activeName: "first",
      isSchduleExpand: true, // 进度追踪
@@ -330,11 +332,24 @@
      sale_chance_name: this.detailConfig.infomation.name,
      sale_chance_id: this.detailConfig.infomation.id
    }
    this.getSaleStageList()
    this.setData(this.detailConfig.infomation)
    this.getSaleStageList().then(()=>{
      return  this.getAllData()
    }).then((statusList)=>{
      this.statusList =statusList
      this.setData(this.detailConfig.infomation)
    })
    console.log('this.detailConfig.infomation',this.detailConfig.infomation)
  },
  mounted() {},
  methods: {
    /**
     * 更新推进记录
     */
    updatePushData(e){
      this.sale_active = e.step - 1
    },
    async getSaleStageList() {
      await getSaleStageList().then((res) => {
        this.stepsList = res.data.list
@@ -363,7 +378,7 @@
          leftStr: "商机来源",
          leftValue: item.sales_sources.name,
          rightStr: "商机类型",
          rightValue: "" // item.SaleType.name
          rightValue: item.sale_type.name
        },
        {
          leftStr: "销售阶段",
@@ -373,13 +388,13 @@
        },
        {
          leftStr: "老客户营销",
          leftValue: item.regular_customers_id,
          leftValue: item.regular_customers.name,
          rightStr: "审批状态",
          rightValue: ""
        },
        {
          leftStr: "竞争对手",
          leftValue: "",
          leftValue: item.competitors,
          rightStr: "创建人",
          rightValue: ""
        },
@@ -407,7 +422,7 @@
          leftStr: "预计合同金额",
          leftValue: item.projected_amount,
          rightStr: "当前状态",
          rightValue: item.status_id
          rightValue: this.statusList.find(ele=>ele.id === item.status_id)?.name ?? ''
        }
      ]
      this.dynamicInfoList = [
@@ -489,7 +504,7 @@
        },
        {
          leftStr: "详细地址",
          leftValue: "",
          leftValue: item.detail_address,
          rightStr: "",
          rightValue: ""
        }
@@ -553,6 +568,16 @@
        options: options,
        id: this.detailConfig.infomation.id
      }
    },
    getAllData(){
     return getAllData()
          .then((res) => {
            return res.data.status
          })
          .catch((err) => {
            console.log(err)
          })
    }
  }
}
src/views/sales/salesReturn/AddSalesReturnDialog.vue
@@ -24,10 +24,26 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="销售退货单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-autocomplete
                      style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -50,31 +66,12 @@
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售退货单编号" prop="number">
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                    >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                    ></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="合同订单">
                  <div class="custom-name">
                    <el-autocomplete
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.salesDetailNumber"
                      :fetch-suggestions="
                        (queryString, callback) => {
@@ -125,7 +122,7 @@
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    style="width:100%"
                    style="width: 100%"
                  >
                  </el-date-picker>
                </el-form-item>
@@ -140,7 +137,7 @@
                <el-form-item label="状态" prop="salesReturnStatusId">
                  <div class="common-select">
                    <el-select
                    style="width:100%"
                      style="width: 100%"
                      v-model="editConfig.infomation.salesReturnStatusId"
                      placeholder="请选择"
                      class="common-select-sel"
@@ -162,7 +159,7 @@
              <el-col :span="24">
                <el-form-item label="退货原因" prop="reason" label-width="15%">
                  <el-input
                  style="width:100%"
                    style="width: 100%"
                    type="textarea"
                    :autosize="{ minRows: 2 }"
                    v-model="editConfig.infomation.reason"
@@ -249,10 +246,10 @@
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import { getProductList } from "@/api/common/other"
import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "AddSalesReturnDialog",
  mixins:[codeMixin],
  mixins: [codeMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -317,27 +314,27 @@
    this.setTableForm()
    this.getCommonData()
    this.getProductList()
    this.formInfo();
    this.formInfo()
  },
  watch:{
    'editClientManageConfig.visible'(val){
      if(val){
  watch: {
    "editClientManageConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editClientManageConfig.infomation.codeStandID'(){
    "editClientManageConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.type='销售退货编码'
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.type = "销售退货编码"
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
    },
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData()
        .then((res) => {
@@ -420,7 +417,7 @@
          sourceId: this.SalesDetailsId,
          sourceType: 1
        },
        codeRule:this.codeRule,
        codeRule: this.codeRule
      }
      return params
    },
src/views/sales/salesReturn/index.vue
@@ -7,15 +7,15 @@
    <div v-else class="filter">
      <div class="filter-card">
        <CommonSearch
            :show-add="false"
            :show-download="false"
            :amount-view="false"
            :show-action-btn="false"
            placeholder="请输入销售退货单编号"
            @searchClick="onFilterSearch"
          :show-add="false"
          :show-download="false"
          :amount-view="false"
          :show-action-btn="false"
          placeholder="请输入销售退货单编号"
          @searchClick="onFilterSearch"
        >
          <template slot="leftButton">
            <el-button size="small" type="primary"  @click="addBtnClick">新建</el-button>
            <el-button size="small" type="primary" @click="addBtnClick">新建</el-button>
            <!-- <el-button size="small"  @click="delClick">删除</el-button> -->
          </template>
        </CommonSearch>
@@ -26,12 +26,12 @@
      <div class="body-card">
        <div class="list-view">
          <TableCommonView
              ref="tableListRef"
              :table-list="tableList"
              @selClientClick="selClientClick"
              @selCommonClick="selCommonClick"
              @getSelectArray="getSelectArray"
              @selTableCol="selTableCol"
            ref="tableListRef"
            :table-list="tableList"
            @selClientClick="selClientClick"
            @selCommonClick="selCommonClick"
            @getSelectArray="getSelectArray"
            @selTableCol="selTableCol"
          >
            <template slot="tableButton">
              <el-table-column label="操作" width="90">
@@ -131,7 +131,7 @@
      keyword: "",
      keywordType: "",
      tableColumn: [
        { label: "销售退货单编号", prop: "number", min: 120, isCommonClick: true ,default:true },
        { label: "销售退货单编号", prop: "number", min: 120, isCommonClick: true, default: true },
        { label: "客户名称", prop: "client_name", min: 90, isClientClick: true },
        { label: "退货日期", prop: "returnDate", min: 130 },
        { label: "状态", prop: "salesReturnStatus_name" },
@@ -141,7 +141,7 @@
        { label: "销售负责人", prop: "member_name" }
        // { label: "修改时间", prop: "modifyTime", isTime: true, min: 130 }
      ],
      showCol:["销售退货单编号", "客户名称", "退货日期", "状态", "退入仓库", "应退款", "已退款", "销售负责人"]
      showCol: ["销售退货单编号", "客户名称", "退货日期", "状态", "退入仓库", "应退款", "已退款", "销售负责人"]
    }
  },
  created() {
@@ -162,9 +162,9 @@
        tableInfomation: [],
        allcol: [],
        showcol: this.showCol,
        tableColumn:this.setColumnVisible(this.showCol)
        tableColumn: this.setColumnVisible(this.showCol)
      }
      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
@@ -172,27 +172,38 @@
        this.searchOptions.push({ value: value, label: label })
      }
    },
    setColumnVisible(showCol){
      return  this.tableColumn.map(ele=>{
    setColumnVisible(showCol) {
      return this.tableColumn.map((ele) => {
        return {
          ...ele,
          isShowColumn:showCol.includes(ele.label)
          isShowColumn: showCol.includes(ele.label)
        }
      })
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setColumnVisible(val);
      this.showcol = val
      this.tableList.tableColumn = this.setColumnVisible(val)
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesReturnList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      let params = {}
      if (this.addConfig.id) {
        params = {
          sourceID: this.addConfig.id,
          sourceType: 1,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      }
      await getSalesReturnList(params)
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
@@ -222,8 +233,8 @@
        })
    },
    // 搜索
    onFilterSearch(searchText){
      this.keyword = searchText ?? ''
    onFilterSearch(searchText) {
      this.keyword = searchText ?? ""
      this.keywordType = "销售退货单编号"
      this.pagerOptions.currPage = 1
      this.getData()
@@ -239,27 +250,27 @@
      console.log(row)
      this.editConfig.visible = true
      this.editConfig.title = "编辑"
      this.editConfig.infomation = { ...row, currency: "人民币"}
      this.editConfig.infomation = { ...row, currency: "人民币" }
    },
    // 删除
    delClick(rowID) {
      // if (this.selValueList && this.selValueList.length > 0) {
        this.$confirm("是否确认删除?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            getDelSalesReturn({ ids:[rowID] }).then((response) => {
              if (response.code === 200) {
                this.$message.success("删除成功")
                this.getData()
              } else {
                this.$message.warning("删除失败")
              }
            })
      this.$confirm("是否确认删除?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          getDelSalesReturn({ ids: [rowID] }).then((response) => {
            if (response.code === 200) {
              this.$message.success("删除成功")
              this.getData()
            } else {
              this.$message.warning("删除失败")
            }
          })
          .catch(() => {})
        })
        .catch(() => {})
      // } else {
      //   this.$message.warning("请至少选择一条记录")
      // }
@@ -299,12 +310,12 @@
.sales-return {
  height: 100%;
  overflow: hidden;
  .filter{
  .filter {
    height: 80px;
    display: flex;
    align-items: center;
    padding: 12px 20px 0 20px;
    &-card{
    &-card {
      height: 80px;
      display: flex;
      align-items: center;
@@ -315,7 +326,7 @@
      background-color: #fff;
    }
  }
  .body{
  .body {
    box-sizing: border-box;
    padding: 10px 20px;
    border-radius: 12px;
src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -9,7 +9,7 @@
      custom-class="iframe-dialog"
    >
      <el-form
          v-if="refreshFlag"
        v-if="refreshFlag"
        ref="form"
        :model="editConfig.infomation"
        :rules="rules"
@@ -23,29 +23,20 @@
          <div class="basic-info-title">基本信息</div>
          <div class="basic-info-view">
            <el-row>
<!--              <el-col :span="12">-->
<!--                <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="number">
                  <WordInput
                      v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
                      :codenumer="codenumer"
                      :sum="sum"
                      :disabled="editConfig.infomation.id || isIdDisabled"
                      :inputValue="inputValue"
                      @codeList="codeList"
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
                  <span v-else-if="method == 0" style="color: #f56c6c"
                  >请优先配置编码规范
                    <el-button type="text"  @click="numberClick">
                        配置规范
                      </el-button
                      ></span
                    >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
                  >
                  <span v-else>{{editConfig.title==='新建'? '自动生成': editConfig.infomation.number}}</span>
                  <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -196,13 +187,13 @@
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
import WordInput from "@/components/wordInput.vue";
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
import WordInput from "@/components/wordInput.vue"
import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
export default {
  name: "SubOrderDialog",
  mixins:[codeMixin],
  components: {WordInput, CommonFormTableView, SelectClientDialog, SelectCommonDialog },
  mixins: [codeMixin],
  components: { WordInput, CommonFormTableView, SelectClientDialog, SelectCommonDialog },
  props: {
    editCommonConfig: {
      type: Object,
@@ -267,7 +258,7 @@
      tableData: [],
      productId: 1,
      addProductArr: [],
      objCode: { name: "", page: 0, pageSize: 0, type: "销售子单编码",codeStandID:'' },
      objCode: { name: "", page: 0, pageSize: 0, type: "销售子单编码", codeStandID: "" }
    }
  },
  created() {
@@ -275,25 +266,25 @@
    this.$store.dispatch("geMaster")
    this.setTableForm()
    this.getCommonData()
    this.formInfo();
    this.formInfo()
  },
  watch:{
    'editConfig.visible'(val){
      if(val){
  watch: {
    "editConfig.visible"(val) {
      if (val) {
        this.formInfo()
      }
    },
    'editConfig.infomation.codeStandID'(){
    "editConfig.infomation.codeStandID"() {
      this.formInfo()
    }
  },
  methods: {
    formInfo(){
      this.objCode.codeStandID = ''
      if(this.editConfig.infomation.codeStandID){
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
    formInfo() {
      this.objCode.codeStandID = ""
      if (this.editConfig.infomation.codeStandID) {
        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
      }
      this.getRCodeStandardList();
      this.getRCodeStandardList()
    },
    getCommonData() {
      getAllData()
@@ -319,10 +310,10 @@
     * 强制刷新form组件
     * 外部更改表单值不会触发表单校验,导致即使有值夜被表单校验阻塞住
     */
    refresh(){
      this.refreshFlag=false
      requestAnimationFrame(()=>{
        this.refreshFlag=true
    refresh() {
      this.refreshFlag = false
      requestAnimationFrame(() => {
        this.refreshFlag = true
      })
    },
    // 保存
@@ -378,8 +369,8 @@
        memberId: data.memberId || 0,
        number: data.number || "",
        product: this.tableData,
        codeStandID:data.ID,
        codeRule:this.codeRule,
        codeStandID: data.ID,
        codeRule: this.codeRule
      }
      return params
    },
@@ -558,7 +549,7 @@
            font-size: 18px;
            cursor: pointer;
          }
          .el-autocomplete{
          .el-autocomplete {
            flex: 1;
          }
        }
src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
@@ -25,12 +25,11 @@
            <el-row>
              <el-col :span="12">
                <el-form-item label="服务单编号" prop="serviceNumber">
                  <!-- <el-input v-model="editConfig.infomation.serviceNumber" style="width: 100%"></el-input> -->
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
src/views/service/clientServiceOrder/index.vue
@@ -184,8 +184,8 @@
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        salesDetailsId: 0,
        serviceContractId: 0
        sourceId:this.addConfig.salesDetailsId
      })
        .then((res) => {
          console.log(res)
src/views/service/clientServiceOrder/mixin/codeMixin.js
@@ -74,7 +74,7 @@
              }
            }
          }
          if (this.editConfig.infomation.id) {
          if (this.editConfig.title !== "新建") {
            this.codeList(this.editConfig.infomation.serviceNumber)
          }
src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -25,12 +25,11 @@
            <el-row>
              <el-col :span="12">
                <el-form-item label="服务合同编号" prop="number">
                  <!-- <el-input v-model="editConfig.infomation.number" style="width: 100%"></el-input> -->
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />
src/views/service/serviceContract/DetailServiceContract.vue
@@ -17,11 +17,11 @@
        <div class="tab-view">
          <el-tabs v-model="activeName" @tab-click="tabsClick">
            <el-tab-pane label="详情" name="first"></el-tab-pane>
            <el-tab-pane label="收款计划" name="collection">
            <!-- <el-tab-pane label="收款计划" name="collection"> -->
              <!-- <template slot="label">
                <div>跟进记录<el-badge type="primary" :value="2"> </el-badge></div>
              </template> -->
            </el-tab-pane>
            <!-- </el-tab-pane> -->
            <el-tab-pane label="收款单" name="receipt"></el-tab-pane>
            <el-tab-pane label="客户服务单" name="clientService"> </el-tab-pane>
            <el-tab-pane label="销售发票" name="invoice"></el-tab-pane>
@@ -217,7 +217,9 @@
      contact_name: this.detailConfig.infomation.contact_name,
      client_id: this.detailConfig.infomation.client_id,
      contact_id: this.detailConfig.infomation.contact_id,
      amountTotal: this.detailConfig.infomation.amountTotal
      amountTotal: this.detailConfig.infomation.amountTotal,
      salesDetailsId:this.serviceContractDetail.infomation.salesDetailsId,
      serviceContractId:this.serviceContractDetail.infomation.id
    }
    this.setTableForm()
  },
src/views/service/serviceContract/index.vue
@@ -198,12 +198,36 @@
    // 请求数据
    async getData() {
      this.loading = true
      await getServiceContractList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
      let params = {}
      console.log(this.addConfig)
      if (this.addConfig.id && this.addConfig.keywordType === "销售机会") {
        params = {
          saleChanceId: this.addConfig.id,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else if (this.addConfig.id && this.addConfig.keywordType === "销售明细单") {
        params = {
          salesDetailsId: this.addConfig.id,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else if (this.addConfig.id && this.addConfig.keywordType === "报价单") {
        params = {
          quotationId: this.addConfig.id,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize
        }
      } else {
        params = {
          keyword: this.keyword,
          keywordType: this.keywordType,
          page: this.pagerOptions.currPage,
          pageSize: this.pagerOptions.pageSize,
          contactId: this.addConfig.client_id
        }
      }
      await getServiceContractList(params)
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -25,12 +25,11 @@
            <el-row>
              <el-col :span="12">
                <el-form-item label="回访单编号" prop="number">
                  <!-- <el-input v-model="editConfig.infomation.number" style="width: 100%"></el-input> -->
                  <WordInput
                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                    :codenumer="codenumer"
                    :sum="sum"
                    :disabled="editConfig.infomation.id || isIdDisabled"
                    :disabled="editConfig.title !== '新建' || isIdDisabled"
                    :inputValue="inputValue"
                    @codeList="codeList"
                  />