yangfeng
2023-08-15 bd42b949807795c581e9193d92834a6187fc10d2
销售管理模块联调
34个文件已修改
998 ■■■■ 已修改文件
src/api/common/other.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/SearchCommonView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/AddClientManageDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/DetailClientManage.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/AddContactsDialog.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/AddFollowupRecordsDialog.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/AddContractManageDialog.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/DetailContractManage.vue 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/index.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/DetailMasterOrder.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/DetailQuotation.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/AddRefundFormDialog.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/DetailRefundForm.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/index.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/AddSalesDetailsDialog.vue 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/DetailSpecification.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/DetailOpportunity.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/AddSalesReturnDialog.vue 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/DetailReturn.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/AddSubOrderDialog.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/DetailSubOrder.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/DetailServiceContract.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFollowup/DetailServiceFollowup.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/common/other.js
@@ -1,4 +1,5 @@
import request from "@/common/untils/request.js"
import axios from "axios"
// 获取故障类别
export function getFaultTypeList() {
@@ -47,3 +48,9 @@
    method: "get"
  })
}
// 获取产品列表
export const getProductList = async (data) => {
  return await axios.get(`/api/product/list`, {
    params: data
  })
}
src/components/makepager/SearchCommonView.vue
@@ -305,7 +305,7 @@
  }
  .search {
    .el-select .el-input {
      width: 115px;
      width: 130px;
    }
    .input-with-select .el-input-group__prepend {
      background-color: #fff;
src/views/client/client/AddClientManageDialog.vue
@@ -28,7 +28,7 @@
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.name"></el-input>
                    <!-- <div class="common-select-btn"><i class="el-icon-house" title="工商查询"></i></div> -->
                    <div class="common-select-btn"><i class="el-icon-search" title="查重"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-search" title="查重"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
src/views/client/client/DetailClientManage.vue
@@ -180,25 +180,25 @@
          </div> -->
        </div>
        <div v-if="activeName === 'contact'" class="second">
          <Contacts :isDetail="true" :add-config="addContactsConfig" />
          <Contacts :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'second'" class="second">
          <FollowupRecords :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'salesOpportunity'" class="second">
          <SalesOpportunity :isDetail="true" :add-config="addContactsConfig" />
          <SalesOpportunity :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'quotation'" class="second">
          <Quotation :isDetail="true" :add-config="addContactsConfig" />
          <Quotation :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'master'" class="second">
          <MasterOrder :isDetail="true" :add-config="addContactsConfig" />
          <MasterOrder :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'sub'" class="second">
          <SubOrder :isDetail="true" :add-config="addContactsConfig" />
          <SubOrder :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'detail'" class="second">
          <SalesDetails :isDetail="true" :add-config="addContactsConfig" />
          <SalesDetails :isDetail="true" :add-config="addConfig" />
        </div>
      </div>
    </el-drawer>
@@ -244,16 +244,15 @@
      addressInfoList: [],
      isRemarkExpand: true, // 备注信息
      isAnnexExpand: true, // 附件信息
      addConfig: {},
      addContactsConfig: {
        client_name: this.clientManageDetail.infomation.name
      }
      addConfig: {}
    }
  },
  created() {
    this.setData(this.detailConfig.infomation)
    this.addConfig = {
      id_name: "client_id",
      id_name: "client_name",
      keywordType: "客户名称",
      keyword: this.detailConfig.infomation.name,
      id: this.detailConfig.infomation.id,
      client_name: this.detailConfig.infomation.name,
      contact_name: this.detailConfig.infomation.contact_name,
src/views/client/client/index.vue
@@ -28,7 +28,6 @@
      />
      <div class="btn-pager">
        <PublicFunctionBtnView
          :duplicate-check="true"
          :list-button="true"
          :map-button="true"
          :statistics="true"
src/views/client/contacts/AddContactsDialog.vue
@@ -87,7 +87,12 @@
              </el-col>
              <el-col :span="12">
                <el-form-item v-if="isUnflod" label="生日" prop="birthday">
                  <el-date-picker v-model="editConfig.infomation.birthday" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.birthday"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -312,7 +317,8 @@
        editVisible: false,
        title: "",
        infomation: {}
      }
      },
      clientId: this.editContactsConfig.infomation.client_id
    }
  },
  created() {
@@ -397,7 +403,7 @@
        id: this.editConfig.title === "新建" ? 0 : data.id,
        birthday: data.birthday || "",
        city_id: data.city_id || 0,
        client_id: parseInt(data.client_id) || 0,
        client_id: this.clientId || 0,
        country_id: data.country_id || 0,
        desc: data.desc || "",
        email: data.email || "",
@@ -425,7 +431,7 @@
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
      this.clientId = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
@@ -433,12 +439,12 @@
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
      this.clientId = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
      this.clientId = 0
    },
    // 添加附件
    addAnnexClick() {},
src/views/client/contacts/index.vue
@@ -122,7 +122,9 @@
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = { ...this.addConfig }
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
  },
@@ -200,6 +202,7 @@
    addBtnClick() {
      this.editConfig.visible = true
      this.editConfig.title = "新建"
      console.log(this.addIdConfig)
      this.editConfig.infomation = { ...this.addConfig }
    },
    // 编辑
src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -61,7 +61,7 @@
                      <el-option v-for="item in clientStatusOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -110,13 +110,22 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系方式" prop="phoneNumber">
                  <el-input
                <el-form-item label="联系方式" prop="contactInfo">
                  <!-- <el-input
                    v-model="editConfig.infomation.phoneNumber"
                    maxlength="11"
                    show-word-limit
                    oninput="value=value.replace(/[^\d]/g,'')"
                  ></el-input>
                  ></el-input> -->
                  <el-select v-model="editConfig.infomation.contactInfo" placeholder="请选择" size="mini">
                    <el-option
                      v-for="item in contactInfoOptions"
                      :key="item.id"
                      :label="item.username"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col v-if="isUnflod" :span="12">
@@ -166,13 +175,23 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系日期" prop="follow_time">
                  <el-date-picker v-model="editConfig.infomation.follow_time" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.follow_time"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="下次回访日期" prop="next_follow_time">
                  <el-date-picker v-model="editConfig.infomation.next_follow_time" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.next_follow_time"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -328,6 +347,7 @@
        ]
      },
      clientStatusOptions: [], // 客户状态
      contactInfoOptions: [], // 联系方式
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true,
src/views/client/followupRecords/index.vue
@@ -60,9 +60,13 @@
    addConfig: {
      type: Object,
      default: () => {
        return {
          sales_leads_name: ""
        }
        return {}
      }
    },
    addIdConfig: {
      type: Object,
      default: () => {
        return {}
      }
    }
  },
@@ -128,7 +132,7 @@
      this.search_map = {}
    } else {
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.id
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
@@ -141,7 +145,7 @@
          { label: "主题", prop: "topic", min: 120 }, // 主题
          { label: "客户名称", prop: "client_name", min: 190, isClientClick: true }, // 客户名称
          { label: "联系人姓名", prop: "contact_name", min: 100, isContactClick: true }, // 联系人姓名
          { label: "客户状态", prop: "client_status_id", min: 100 }, // 客户状态
          { label: "客户状态", prop: "client_status", min: 100 }, // 客户状态
          { label: "联系方式", prop: "phone", min: 100 }, // 联系方式
          { label: "联系人日期", prop: "follow_time", isTime: true, min: 130 }, // 联系人日期
          { label: "下次回访日期", prop: "next_follow_time", isTime: true, min: 130 }, // 下次回访日期
@@ -173,7 +177,7 @@
                  ...item,
                  client_name: item.client.name,
                  contact_name: item.contact.name,
                  client_status_id: item.client.client_status_id,
                  client_status: item.client_status.name,
                  phone: item.contact.phone,
                  member_name: item.member.username
                }
src/views/sales/contractManage/AddContractManageDialog.vue
@@ -44,9 +44,9 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="负责人" prop="member_id">
                <el-form-item label="负责人" prop="memberId">
                  <el-select
                    v-model="editConfig.infomation.member_id"
                    v-model="editConfig.infomation.memberId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 63%"
@@ -68,7 +68,7 @@
                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -84,7 +84,7 @@
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div v-if="isUnflod" class="basic-info-title">附件信息</div>
          <!-- <div v-if="isUnflod" class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -109,7 +109,7 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
          <!-- 展开收起 -->
          <div v-if="editConfig.title === '新建'" class="unflod-collapse" @click="unflodCollapseClick">
            <div>{{ unflodCollapseStr }}</div>
src/views/sales/contractManage/DetailContractManage.vue
@@ -14,7 +14,7 @@
        </div>
      </template>
      <div class="content">
        <div class="top">
        <!-- <div class="top">
          <ul>
            <li v-for="(item, i) in topList" :key="i">
              <div class="left1">
@@ -35,7 +35,7 @@
              </div>
            </li>
          </ul>
        </div>
        </div> -->
        <div class="tab-view">
          <el-tabs v-model="activeName" @tab-click="tabsClick">
            <el-tab-pane label="详情" name="first"></el-tab-pane>
@@ -82,18 +82,18 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
            </div>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info">
          <!-- <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('annex')">
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i>
              <i v-else class="el-icon-arrow-up"></i>
@@ -109,7 +109,7 @@
                </li>
              </ul>
            </div>
          </div>
          </div> -->
        </div>
        <div v-if="activeName === 'annex'" class="second">
          <!-- <FollowupRecords :isDetail="true" /> -->
@@ -161,11 +161,11 @@
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.topList = [
        {
          left1Str: "单据编号",
@@ -201,43 +201,43 @@
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: "",
          leftValue: item.client.name,
          rightStr: "单据编号",
          rightValue: ""
          rightValue: item.number
        },
        {
          leftStr: "负责人",
          leftValue: "",
          rightStr: "创建人",
          rightValue: ""
        },
        {
          leftStr: "创建时间",
          leftValue: "",
          rightStr: "最新更新人",
          rightValue: ""
        },
        {
          leftStr: "更新时间",
          leftValue: "",
          rightStr: "审批状态",
          rightValue: ""
        },
        {
          leftStr: "最新审批时间",
          leftValue: "",
          rightStr: "上一步审批人",
          rightValue: ""
        },
        {
          leftStr: "当前审批人",
          leftValue: "",
          leftValue: item.member.username,
          rightStr: "合同状态",
          rightValue: item.statusId
        },
        {
          leftStr: "创建人",
          leftValue: "",
          rightStr: "创建时间",
          rightValue: ""
        },
        {
          leftStr: "最新更新人",
          leftValue: "",
          rightStr: "更新时间",
          rightValue: ""
        },
        // {
        //   leftStr: "审批状态",
        //   leftValue: "",
        //   rightStr: "最新审批时间",
        //   rightValue: ""
        // },
        // {
        //   leftStr: "上一步审批人",
        //   leftValue: "",
        //   rightStr: "当前审批人",
        //   rightValue: ""
        // },
        {
          leftStr: "销售报价单",
          leftValue: "",
          leftValue: item.quotation.number,
          rightStr: "",
          rightValue: ""
        }
src/views/sales/contractManage/index.vue
@@ -8,6 +8,7 @@
        :search-options="searchOptions"
        @searchClick="searchClick"
        @resetClick="resetClick"
        :search-sel="searchSel"
      />
      <div class="btn-pager">
        <PublicFunctionBtnView
@@ -93,11 +94,22 @@
        infomation: {}
      },
      selValueList: [],
      search_map: {}
      search_map: {},
      searchSel: {
        value: "number",
        label: "单据编号"
      }
    }
  },
  created() {
    this.setTable()
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData()
  },
  methods: {
@@ -106,16 +118,17 @@
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "number", min: 120, isCommonClick: true },
          { label: "负责人", prop: "memberId", min: 90 },
          { label: "审批状态", prop: "approvalStatus" },
          { label: "负责人", prop: "member_name", min: 90 },
          // { label: "审批状态", prop: "approvalStatus" },
          { label: "创建人", prop: "creator", min: 100 },
          { label: "创建时间", prop: "createTime" }
          { label: "创建时间", prop: "created_at" }
        ]
      }
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
        this.searchOptions.push({ value: (i + 1).toString(), label: label })
        const value = this.tableList.tableColumn[i].prop
        this.searchOptions.push({ value: value, label: label })
      }
    },
    // 请求数据
@@ -132,7 +145,8 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  member_name: item.member.username
                }
              })
              this.tableList.tableInfomation = list || []
src/views/sales/masterOrder/DetailMasterOrder.vue
@@ -67,7 +67,7 @@
          </div> -->
        </div>
        <div v-if="activeName === 'sub'" class="second">
          <SubOrder :isDetail="true" />
          <SubOrder :isDetail="true" :add-config="addCommonConfig" />
        </div>
      </div>
    </el-drawer>
@@ -97,7 +97,11 @@
      activeName: "first",
      isBasicExpand: true, // 基本信息
      basicInfoList: [],
      isAnnexExpand: true // 附件信息
      isAnnexExpand: true, // 附件信息
      addCommonConfig: {
        master_order_number: this.masterOrderDetail.infomation.number,
        masterOrderId: this.masterOrderDetail.infomation.id
      }
    }
  },
  created() {
src/views/sales/masterOrder/index.vue
@@ -125,7 +125,9 @@
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = { ...this.addConfig }
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
  },
@@ -136,8 +138,8 @@
        tableColumn: [
          { label: "单据编号", prop: "number", min: 100, isCommonClick: true }, // 单据编号
          { label: "客户名称", prop: "client_name", min: 120, isClientClick: true }, // 客户名称
          { label: "服务开始时间", prop: "start_time", isTime: true }, // 服务开始时间
          { label: "服务截止时间", prop: "end_time", isTime: true }, // 服务截止时间
          { label: "服务开始时间", prop: "start_time" }, // 服务开始时间
          { label: "服务截止时间", prop: "end_time" }, // 服务截止时间
          { label: "合同金额", prop: "money" }, // 合同金额
          { label: "负责人", prop: "member_name" } // 负责人
          // { label: "审批状态", prop: "approvalStatus" } // 审批状态
src/views/sales/quotation/DetailQuotation.vue
@@ -193,7 +193,7 @@
        },
        {
          leftStr: "报价单状态",
          leftValue: item.quotation_status_id,
          leftValue: item.quotation_status.name,
          rightStr: "联系人姓名",
          rightValue: item.contact_name
        },
@@ -201,7 +201,7 @@
          leftStr: "有效期至",
          leftValue: item.validity_date,
          rightStr: "销售负责人",
          rightValue: item.member_id
          rightValue: item.member.username
        },
        {
          leftStr: "销售机会",
src/views/sales/quotation/index.vue
@@ -126,7 +126,9 @@
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = { ...this.addConfig }
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
  },
@@ -170,8 +172,8 @@
                return {
                  ...item,
                  client_name: item.client.name,
                  contact_name: item.contact.name
                  // member_name: item.member.username
                  contact_name: item.contact.name,
                  member_name: item.member.username
                }
              })
              this.tableList.tableInfomation = list || []
src/views/sales/refundForm/AddRefundFormDialog.vue
@@ -74,15 +74,20 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="退款日期" prop="refundDate">
                  <el-date-picker v-model="editConfig.infomation.refundDate" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.refundDate"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="付款方式" prop="refundMethod">
                <el-form-item label="付款方式" prop="paymentTypeId">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.refundMethod"
                      v-model="editConfig.infomation.paymentTypeId"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
@@ -90,7 +95,7 @@
                      <el-option v-for="item in refundMethodOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -106,7 +111,7 @@
                      <el-option v-for="item in accountOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -119,10 +124,9 @@
                      class="common-select-sel"
                      size="mini"
                    >
                      <el-option v-for="item in isInvoiceOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                      <el-option v-for="item in isInvoiceOptions" :key="item" :label="item" :value="item"> </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -144,7 +148,7 @@
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info-title">附件信息</div>
          <!-- <div class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -169,7 +173,7 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info-title" style="display: flex">
            产品管理
@@ -286,7 +290,7 @@
      // selSourceOrderOptions: [{ value: "1", label: "销售退货单" }], // 选择源单
      refundMethodOptions: [], // 付款方式
      accountOptions: [], // 账户
      isInvoiceOptions: [], // 是否开票
      isInvoiceOptions: ["是", "否"], // 是否开票
      currencyOptions: [], // 币种
      approvalWorkflowOptions: [], // 审批流程
      productTableList: {},
@@ -300,7 +304,8 @@
        editVisible: false,
        title: "",
        infomation: {}
      }
      },
      clientId: this.editCommonConfig.infomation.client_id
    }
  },
  created() {
@@ -315,7 +320,7 @@
          this.memberOptions = res.data.member
          this.refundMethodOptions = res.data.refundMethod
          this.accountOptions = res.data.accountId
          this.isInvoiceOptions = res.data.isInvoice
          // this.isInvoiceOptions = res.data.isInvoice
          this.currencyOptions = res.data.currency
        })
        .catch((err) => {
@@ -330,37 +335,23 @@
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesRefund(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getAddSalesRefund(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("添加成功")
                this.$parent.getData()
              }
            })
          } else {
            getUpdateSalesRefund(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getUpdateSalesRefund(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("编辑成功")
                this.$parent.getData()
              }
            })
          }
        } else {
          console.log("error submit")
@@ -374,21 +365,11 @@
        id: this.editConfig.title === "新建" ? 0 : data.id,
        salesRefund: {
          accountId: data.accountId || 0,
          clientId: parseInt(data.clientId) || 0,
          isInvoice: data.isInvoice || 0,
          clientId: this.clientId || 0,
          isInvoice: data.isInvoice || "",
          memberId: data.memberId || 0,
          number: data.number || "",
          products: [
            {
              amount: 0,
              desc: "",
              id: 0,
              name: "",
              number: "",
              price: 0,
              total: 0
            }
          ],
          products: data.products || [],
          reason: data.reason || "",
          refundDate: data.refundDate || "",
          refundMethod: data.refundMethod || ""
@@ -411,7 +392,7 @@
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
      this.clientId = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
@@ -419,12 +400,12 @@
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
      this.clientId = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
      this.clientId = 0
    },
    // 添加附件
    addAnnexClick() {},
src/views/sales/refundForm/DetailRefundForm.vue
@@ -37,11 +37,11 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -58,15 +58,15 @@
              <ul>
                <li>
                  <div class="left remark">
                    <div class="content-title">{{ "退货原因:" }}</div>
                    <div class="content-data">{{ "" }}</div>
                    <div class="content-title">{{ "退款原因:" }}</div>
                    <div class="content-data">{{ detailConfig.infomation.reason }}</div>
                  </div>
                </li>
              </ul>
            </div>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info">
          <!-- <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('annex')">
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i>
              <i v-else class="el-icon-arrow-up"></i>
@@ -82,7 +82,7 @@
                </li>
              </ul>
            </div>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('product')">
@@ -144,34 +144,34 @@
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.setTableForm()
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: "",
          rightStr: "销售退货单编号",
          rightValue: ""
        },
        {
          leftStr: "选择源单",
          leftValue: "",
          rightStr: "退入仓库",
          rightValue: ""
          leftValue: item.client.name,
          rightStr: "退款单编号",
          rightValue: item.number
        },
        {
          leftStr: "销售负责人",
          leftValue: "",
          rightStr: "审批状态",
          rightValue: ""
          leftValue: item.member.username,
          rightStr: "退款日期",
          rightValue: item.refundDate
        },
        {
          leftStr: "退货日期",
          leftValue: "",
          leftStr: "付款方式",
          leftValue: item.paymentType.name,
          rightStr: "账户",
          rightValue: item.bankAccount.name
        },
        {
          leftStr: "是否开票",
          leftValue: item.isInvoice,
          rightStr: "创建时间",
          rightValue: ""
        },
src/views/sales/refundForm/index.vue
@@ -107,11 +107,20 @@
        infomation: {}
      },
      selValueList: [],
      search_map: {}
      search_map: {},
      keyword: "",
      keywordType: ""
    }
  },
  created() {
    this.setTable()
    if (!this.isDetail) {
      this.keyword = ""
      this.keywordType = ""
    } else {
      this.keyword = this.addConfig.keyword
      this.keywordType = this.addConfig.keywordType
    }
    this.getData()
  },
  methods: {
@@ -120,27 +129,29 @@
        tableInfomation: [],
        tableColumn: [
          { label: "退款单编号", prop: "number", isCommonClick: true },
          { label: "客户名称", prop: "clientId", min: 120, isClientClick: true },
          { label: "退款日期", prop: "refundDate", isTime: true, min: 130 },
          { label: "账户", prop: "accountId" },
          { label: "客户名称", prop: "client_name", min: 120, isClientClick: true },
          { label: "退款日期", prop: "refundDate", min: 130 },
          { label: "账户", prop: "bankAccount_name" },
          { label: "是否开票", prop: "isInvoice", min: 100 },
          { label: "付款方式", prop: "refundMethod" },
          { label: "销售负责人", prop: "memberId" },
          { label: "付款方式", prop: "paymentType_name" },
          { label: "销售负责人", prop: "member_name" },
          // { label: "修改时间", prop: "modifyTime" },
          { label: "价税合计", prop: "priceTax" }
          { label: "价税合计", prop: "amountTotal" }
        ]
      }
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
        this.searchOptions.push({ value: (i + 1).toString(), label: label })
        const value = this.tableList.tableColumn[i].prop
        this.searchOptions.push({ value: value, label: label })
      }
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesRefundList({
        search_map: this.search_map,
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
@@ -150,7 +161,11 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name,
                  member_name: item.member.username,
                  paymentType_name: item.paymentType.name,
                  bankAccount_name: item.bankAccount.name
                }
              })
              this.tableList.tableInfomation = list || []
@@ -172,13 +187,13 @@
    // 搜索
    searchClick(val, content) {
      console.log(val, content)
      this.search_map = {
        [val.value]: content
      }
      this.keyword = content
      this.keywordType = val.label
      this.getData()
    },
    resetClick() {
      this.search_map = {}
      this.keyword = ""
      this.keywordType = ""
      this.getData()
    },
    // 新建
src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -87,7 +87,12 @@
              </el-col> -->
              <el-col :span="12">
                <el-form-item label="签约日期" prop="signTime">
                  <el-date-picker v-model="editConfig.infomation.signTime" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.signTime"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -106,7 +111,12 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="交付日期" prop="deliveryDate">
                  <el-date-picker v-model="editConfig.infomation.deliveryDate" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.deliveryDate"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -180,11 +190,11 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="24">
                <el-form-item label="条款与条件" prop="termsTreaty">
                <el-form-item label="条款与条件" prop="conditions">
                  <el-input
                    type="textarea"
                    :autosize="{ minRows: 4 }"
                    v-model="editConfig.infomation.termsTreaty"
                    v-model="editConfig.infomation.conditions"
                  ></el-input>
                </el-form-item>
              </el-col>
@@ -202,7 +212,7 @@
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info-title">附件信息</div>
          <!-- <div class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -227,7 +237,7 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info-title" style="display: flex">
            产品管理
@@ -382,7 +392,7 @@
        title: "",
        infomation: {}
      },
      clientId: this.editCommonConfig.infomation.clientId,
      clientId: this.editCommonConfig.infomation.client_id,
      saleChanceId: this.editCommonConfig.infomation.saleChanceId
    }
  },
@@ -418,37 +428,23 @@
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesDetails(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getAddSalesDetails(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("添加成功")
                this.$parent.getData()
              }
            })
          } else {
            getUpdateSalesDetails(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getUpdateSalesDetails(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("编辑成功")
                this.$parent.getData()
              }
            })
          }
        } else {
          console.log("error submit")
@@ -458,36 +454,44 @@
    },
    saveParams() {
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        salesDetails: {
          address: data.address || "",
          addressee: data.addressee || "",
          clientId: parseInt(this.clientId),
          conditions: data.conditions || "",
          deliveryDate: data.deliveryDate || "",
          memberId: data.memberId || 0,
          number: data.number || "",
          phone: data.phone || "",
          products: [
            {
              amount: 0,
              desc: "",
              id: 0,
              name: "",
              number: "",
              price: 0,
              total: 0
            }
          ],
          remark: data.remark || "",
          saleChanceId: parseInt(this.saleChanceId),
          saleType: data.saleType || 0,
          signTime: data.signTime || "",
          wechatOrderStatus: data.wechatOrderStatus || 0,
          logisticCompany: data.logisticCompany || "",
          logisticCost: parseInt(data.logisticCost) || 0,
          logisticNumber: data.logisticNumber || ""
      let commonParam = {
        address: data.address || "",
        addressee: data.addressee || "",
        clientId: this.clientId || 0,
        conditions: data.conditions || "",
        deliveryDate: data.deliveryDate || "",
        memberId: data.memberId || 0,
        number: data.number || "",
        phone: data.phone || "",
        products: [
          {
            amount: 0,
            desc: "",
            id: 0,
            name: "",
            number: "",
            price: 0,
            total: 0
          }
        ],
        remark: data.remark || "",
        saleChanceId: this.saleChanceId || 0,
        saleType: data.saleType || 0,
        signTime: data.signTime || "",
        wechatOrderStatus: data.wechatOrderStatus || 0,
        logisticCompany: data.logisticCompany || "",
        logisticCost: parseInt(data.logisticCost) || 0,
        logisticNumber: data.logisticNumber || ""
      }
      let params = {}
      if (this.editConfig.title === "新建") {
        params = { ...commonParam }
      } else {
        params = {
          id: this.editConfig.title === "新建" ? 0 : data.id,
          salesDetails: {
            ...commonParam
          }
        }
      }
      return params
src/views/sales/salesDetails/DetailSpecification.vue
@@ -19,19 +19,19 @@
            <li v-for="(item, i) in topList" :key="i">
              <div class="left1">
                <div class="content-title">{{ item.left1Str + ":" }}</div>
                <div class="content-data">{{ item.left1Value }}</div>
                <div class="content-data">{{ item.left1Value ? item.left1Value : "--" }}</div>
              </div>
              <div class="left2">
                <div class="content-title">{{ item.left2Str + ":" }}</div>
                <div class="content-data">{{ item.left2Value }}</div>
                <div class="content-data">{{ item.left2Value ? item.left2Value : "--" }}</div>
              </div>
              <div class="right1">
                <div class="content-title">{{ item.right1Str + ":" }}</div>
                <div class="content-data">{{ item.right1Value }}</div>
                <div class="content-data">{{ item.right1Value ? item.right1Value : "--" }}</div>
              </div>
              <div class="right2">
                <div class="content-title">{{ item.right2Str + ":" }}</div>
                <div class="content-data">{{ item.right2Value }}</div>
                <div class="content-data">{{ item.right2Value ? item.right2Value : "--" }}</div>
              </div>
            </li>
          </ul>
@@ -64,11 +64,11 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -86,11 +86,11 @@
                <li v-for="(item, i) in dynamicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -108,11 +108,11 @@
                <li v-for="(item, i) in deliveryInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -129,9 +129,10 @@
              <div class="termsConditions">
                <div class="content-title">{{ "条件与条款" + ":" }}</div>
                <div class="content-termsConditions">
                  <ul>
                  {{ "\n" + detailConfig.infomation.conditions }}
                  <!-- <ul>
                    <li v-for="(item, index) in Status.termsConditions" :key="index">{{ item }}</li>
                  </ul>
                  </ul> -->
                </div>
              </div>
            </div>
@@ -260,18 +261,18 @@
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.setTableForm()
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.topList = [
        {
          left1Str: "客户名称",
          left1Value: "",
          left1Value: item.client.name,
          left2Str: "合计",
          left2Value: "",
          left2Value: item.amountTotal,
          right1Str: "已收金额",
          right1Value: "0.00",
          right2Str: "已开票金额",
@@ -281,7 +282,7 @@
          left1Str: "签约日期",
          left1Value: "",
          left2Str: "销售负责人",
          left2Value: "",
          left2Value: item.Member.username,
          right1Str: "应收金额",
          right1Value: "0.00",
          right2Str: "未开票金额",
@@ -291,25 +292,25 @@
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: "",
          leftValue: item.client.name,
          rightStr: "订单编号",
          rightValue: ""
          rightValue: item.number
        },
        {
          leftStr: "销售机会",
          leftValue: "",
          leftValue: item.saleChance.name,
          rightStr: "选择源单",
          rightValue: ""
        },
        {
          leftStr: "签约日期",
          leftValue: "",
          leftValue: item.signTime,
          rightStr: "销售负责人",
          rightValue: ""
          rightValue: item.Member.username
        },
        {
          leftStr: "交付日期",
          leftValue: "",
          leftValue: item.deliveryDate,
          rightStr: "订单来源",
          rightValue: ""
        },
@@ -329,13 +330,13 @@
      this.deliveryInfoList = [
        {
          leftStr: "收货人",
          leftValue: "",
          leftValue: item.addressee,
          rightStr: "收货联系方式",
          rightValue: ""
          rightValue: item.phone
        },
        {
          leftStr: "收货地址",
          leftValue: "",
          leftValue: item.address,
          rightStr: "",
          rightValue: ""
        }
@@ -611,13 +612,10 @@
                color: #555;
              }
              .content-termsConditions {
                margin-left: 25px;
                margin: 0px 25px 15px;
                font-size: 13px;
                color: #333;
                li {
                  margin: 5px 0;
                  border-bottom: 0px solid #f9f9fb;
                }
                white-space: pre-wrap;
              }
            }
          }
src/views/sales/salesDetails/index.vue
@@ -11,6 +11,7 @@
        :search-options="searchOptions"
        @searchClick="searchClick"
        @resetClick="resetClick"
        :search-sel="searchSel"
      />
      <div class="btn-pager">
        <PublicFunctionBtnView :submit-approval="true" :operates-list="operatesList" @batchDelete="delClick" />
@@ -124,17 +125,25 @@
        infomation: {}
      },
      selValueList: [],
      search_map: {}
      search_map: {},
      searchSel: {
        value: "number",
        label: "订单编号"
      },
      keyword: "",
      keywordType: ""
    }
  },
  created() {
    this.setTable()
    if (!this.isDetail) {
      this.search_map = {}
      this.keyword = ""
      this.keywordType = ""
    } else {
      this.search_map = { ...this.addConfig }
      this.keyword = this.addConfig.keyword
      this.keywordType = this.addConfig.keywordType
    }
    this.getData(this.search_map)
    this.getData()
  },
  methods: {
    setTable() {
@@ -143,8 +152,8 @@
        tableColumn: [
          { label: "订单编号", prop: "number", isCommonClick: true },
          { label: "客户名称", prop: "client_name", isClientClick: true },
          { label: "签约日期", prop: "signTime", isTime: true, width: 150 },
          { label: "销售负责人", prop: "memberId" },
          { label: "签约日期", prop: "signTime", width: 150 },
          { label: "销售负责人", prop: "member_name" },
          { label: "出库状态", prop: "outboundStatus" },
          { label: "已收总额", prop: "receiveTotalAmount", price: true },
          { label: "合计", prop: "total", price: true },
@@ -161,14 +170,16 @@
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
        this.searchOptions.push({ value: (i + 1).toString(), label: label })
        const value = this.tableList.tableColumn[i].prop
        this.searchOptions.push({ value: value, label: label })
      }
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesDetailsList({
        search_map: this.search_map,
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
@@ -179,7 +190,8 @@
              const list = res.data.list.map((item) => {
                return {
                  ...item,
                  client_name: item.client.name
                  client_name: item.client.name,
                  member_name: item.Member.username
                }
              })
              this.tableList.tableInfomation = list || []
@@ -200,14 +212,13 @@
    },
    // 搜索
    searchClick(val, content) {
      console.log(val, content)
      this.search_map = {
        [val.value]: content
      }
      this.keyword = content
      this.keywordType = val.label
      this.getData()
    },
    resetClick() {
      this.search_map = {}
      this.keyword = ""
      this.keywordType = ""
      this.getData()
    },
    // 新建
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -652,15 +652,12 @@
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message({
                  message: "添加成功",
                  type: "success"
                })
                if (this.editConfig.title === "新建" && this.editConfig.infomation.client_name) {
                  this.$parent.handleClose()
                } else {
                  this.$parent.getData()
                }
                this.$message.success("添加成功")
                // if (this.editConfig.title === "新建" && this.editConfig.infomation.client_name) {
                //   this.$parent.handleClose()
                // } else {
                this.$parent.getData()
                // }
              }
            })
          } else {
@@ -668,10 +665,7 @@
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message({
                  message: "编辑成功",
                  type: "success"
                })
                this.$message.success("编辑成功")
                this.$parent.getData()
              }
            })
src/views/sales/salesOpportunity/DetailOpportunity.vue
@@ -346,7 +346,7 @@
        },
        {
          leftStr: "商机来源",
          leftValue: item.SalesSources.name,
          leftValue: item.sales_sources.name,
          rightStr: "商机类型",
          rightValue: "" // item.SaleType.name
        },
src/views/sales/salesOpportunity/index.vue
@@ -14,7 +14,6 @@
      />
      <div class="btn-pager">
        <PublicFunctionBtnView
          :duplicate-check="true"
          :statistics="true"
          :custom-funnel="true"
          :operates-list="operatesList"
@@ -135,7 +134,9 @@
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = { ...this.addConfig }
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
  },
src/views/sales/salesReturn/AddSalesReturnDialog.vue
@@ -87,7 +87,12 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="退货日期" prop="returnDate">
                  <el-date-picker v-model="editConfig.infomation.returnDate" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.returnDate"
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -98,10 +103,10 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="状态" prop="status">
                <el-form-item label="状态" prop="salesReturnStatusId">
                  <div class="common-select">
                    <el-select
                      v-model="editConfig.infomation.status"
                      v-model="editConfig.infomation.salesReturnStatusId"
                      placeholder="请选择"
                      class="common-select-sel"
                      size="mini"
@@ -109,7 +114,7 @@
                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
                      </el-option>
                    </el-select>
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                  </div>
                </el-form-item>
              </el-col>
@@ -131,7 +136,7 @@
            </el-row>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info-title">附件信息</div>
          <!-- <div class="basic-info-title">附件信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
@@ -156,7 +161,7 @@
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info-title" style="display: flex">
            产品管理
@@ -192,6 +197,7 @@
import { getAllData } from "@/api/client/client"
import { getAddSalesReturn, getUpdateSalesReturn } from "@/api/sales/salesReturn"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import { getProductList } from "@/api/common/other"
export default {
  name: "AddSalesReturnDialog",
  props: {
@@ -245,6 +251,7 @@
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
    this.getProductList()
  },
  methods: {
    getCommonData() {
@@ -253,11 +260,22 @@
          this.memberOptions = res.data.member
          this.repositoryOptions = res.data.repository
          this.currencyOptions = res.data.currency
          this.statusOptions = res.data.status
          this.statusOptions = res.data.salesReturnStatus
        })
        .catch((err) => {
          console.log(err)
        })
    },
    // 获取产品列表
    async getProductList() {
      await getProductList({
        page: 0,
        pageSize: 0,
        productName: "",
        productNumber: ""
      }).then((res) => {
        console.log(res)
      })
    },
    // 保存
    saveClick(formName) {
@@ -267,37 +285,27 @@
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSalesReturn(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getAddSalesReturn(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("添加成功")
                this.$parent.getData()
              }
            })
          } else {
            getUpdateSalesReturn(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getUpdateSalesReturn(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("编辑成功")
                this.$message({
                  message: "编辑成功",
                  type: "success"
                })
                this.$parent.getData()
              }
            })
          }
        } else {
          console.log("error submit")
src/views/sales/salesReturn/DetailReturn.vue
@@ -37,11 +37,11 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -59,11 +59,11 @@
                <li v-for="(item, i) in dynamicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -81,14 +81,14 @@
                <li>
                  <div class="left remark">
                    <div class="content-title">{{ "退货原因:" }}</div>
                    <div class="content-data">{{ "" }}</div>
                    <div class="content-data">{{ detailConfig.infomation.reason }}</div>
                  </div>
                </li>
              </ul>
            </div>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info">
          <!-- <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('annex')">
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i>
              <i v-else class="el-icon-arrow-up"></i>
@@ -104,7 +104,7 @@
                </li>
              </ul>
            </div>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('product')">
@@ -169,34 +169,34 @@
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.setTableForm()
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: "",
          leftValue: item.client.name,
          rightStr: "销售退货单编号",
          rightValue: ""
          rightValue: item.number
        },
        {
          leftStr: "选择源单",
          leftValue: "",
          rightStr: "退入仓库",
          rightValue: ""
          rightValue: item.repository
        },
        {
          leftStr: "销售负责人",
          leftValue: "",
          leftValue: item.Member.username,
          rightStr: "审批状态",
          rightValue: ""
        },
        {
          leftStr: "退货日期",
          leftValue: "",
          leftValue: item.returnDate,
          rightStr: "创建时间",
          rightValue: ""
        },
@@ -216,7 +216,7 @@
        },
        {
          leftStr: "状态",
          leftValue: "",
          leftValue: item.SalesReturnStatus.name,
          rightStr: "已退款",
          rightValue: ""
        }
src/views/sales/salesReturn/index.vue
@@ -11,6 +11,7 @@
        :search-options="searchOptions"
        @searchClick="searchClick"
        @resetClick="resetClick"
        :search-sel="searchSel"
      />
      <div class="btn-pager">
        <PublicFunctionBtnView
@@ -108,11 +109,24 @@
        infomation: {}
      },
      selValueList: [],
      search_map: {}
      search_map: {},
      searchSel: {
        value: "number",
        label: "销售退货单编号"
      },
      keyword: "",
      keywordType: ""
    }
  },
  created() {
    this.setTable()
    if (!this.isDetail) {
      this.keyword = ""
      this.keywordType = ""
    } else {
      this.keyword = this.addConfig.keyword
      this.keywordType = this.addConfig.keywordType
    }
    this.getData()
  },
  methods: {
@@ -121,27 +135,29 @@
        tableInfomation: [],
        tableColumn: [
          { label: "销售退货单编号", prop: "number", min: 120, isCommonClick: true },
          { label: "客户名称", prop: "clientId", min: 90, isClientClick: true },
          { label: "退货日期", prop: "returnDate", isTime: true, min: 130 },
          { label: "状态", prop: "status" },
          { label: "客户名称", prop: "client_name", min: 90, isClientClick: true },
          { label: "退货日期", prop: "returnDate", min: 130 },
          { label: "状态", prop: "salesReturnStatus_name" },
          { label: "退入仓库", prop: "repository" },
          { label: "应退款", prop: "refundabe" },
          { label: "已退款", prop: "refunded" },
          { label: "销售负责人", prop: "memberId" }
          { label: "销售负责人", prop: "member_name" }
          // { label: "修改时间", prop: "modifyTime", isTime: true, min: 130 }
        ]
      }
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
        this.searchOptions.push({ value: (i + 1).toString(), label: label })
        const value = this.tableList.tableColumn[i].prop
        this.searchOptions.push({ value: value, label: label })
      }
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getSalesReturnList({
        search_map: this.search_map,
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      })
@@ -151,7 +167,10 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  member_name: item.Member.username,
                  salesReturnStatus_name: item.SalesReturnStatus.name,
                  client_name: item.client.name
                }
              })
              this.tableList.tableInfomation = list || []
@@ -172,14 +191,13 @@
    },
    // 搜索
    searchClick(val, content) {
      console.log(val, content)
      this.search_map = {
        [val.value]: content
      }
      this.keyword = content
      this.keywordType = val.label
      this.getData()
    },
    resetClick() {
      this.search_map = {}
      this.keyword = ""
      this.keywordType = ""
      this.getData()
    },
    // 新建
src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -50,10 +50,10 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="销售总单" prop="masterOrderNumber">
                <el-form-item label="销售总单" prop="master_order_number">
                  <div class="custom-name">
                    <el-autocomplete
                      v-model="editConfig.infomation.masterOrderNumber"
                      v-model="editConfig.infomation.master_order_number"
                      :fetch-suggestions="
                        (queryString, callback) => {
                          querySearchAsync(queryString, callback, 'master')
@@ -307,7 +307,7 @@
    dataProcess() {
      this.masterOrderList.map((item) => {
        if (this.masterId === item.id) {
          this.editConfig.infomation.masterOrderNumber = item.number
          this.editConfig.infomation.master_order_number = item.number
        }
      })
    },
@@ -319,37 +319,23 @@
          const params = this.saveParams()
          console.log(params)
          if (this.editConfig.title === "新建") {
            getAddSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getAddSubOrder(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("添加成功")
                this.$parent.getData()
              }
            })
          } else {
            getUpdateSubOrder(params)
              .then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message({
                    message: "编辑成功",
                    type: "success"
                  })
                  this.$parent.getData()
                }
              })
              .catch((err) => {
                console.log(err)
              })
            getUpdateSubOrder(params).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                this.$message.success("编辑成功")
                this.$parent.getData()
              }
            })
          }
        } else {
          console.log("error submit")
@@ -361,8 +347,8 @@
      let data = this.editConfig.infomation
      let params = {
        id: this.editConfig.title === "新建" ? 0 : data.id,
        clientId: parseInt(this.clientId) || 0,
        masterOrderId: parseInt(this.masterId) || 0,
        clientId: this.clientId || 0,
        masterOrderId: this.masterId || 0,
        memberId: data.memberId || 0,
        number: data.number || "",
        product: [
@@ -431,7 +417,7 @@
        this.editConfig.infomation.client_id = row.id
        this.clientId = row.id
      } else if (value == "master") {
        this.editConfig.infomation.masterOrderNumber = row.number
        this.editConfig.infomation.master_order_number = row.number
        this.masterId = row.id
      }
    },
@@ -442,7 +428,7 @@
        this.editConfig.infomation.client_id = 0
        this.clientId = 0
      } else if (value == "master") {
        this.editConfig.infomation.masterOrderNumber = ""
        this.editConfig.infomation.master_order_number = ""
        this.masterId = 0
      }
    },
src/views/sales/subOrder/DetailSubOrder.vue
@@ -37,18 +37,18 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
            </div>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info">
          <!-- <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('annex')">
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i>
              <i v-else class="el-icon-arrow-up"></i>
@@ -64,7 +64,7 @@
                </li>
              </ul>
            </div>
          </div>
          </div> -->
          <!-- 产品管理 -->
          <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('product')">
@@ -93,6 +93,7 @@
<script>
import SalesDetails from "@/views/sales/salesDetails"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
export default {
  name: "DetailSubOrder",
  props: {
@@ -126,24 +127,24 @@
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.setTableForm()
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: "",
          leftValue: item.client.name,
          rightStr: "单据编号",
          rightValue: ""
          rightValue: item.number
        },
        {
          leftStr: "销售总单",
          leftValue: "",
          leftValue: item.masterOrder.number,
          rightStr: "负责人",
          rightValue: ""
          rightValue: item.member.username
        },
        {
          leftStr: "创建人",
@@ -156,19 +157,19 @@
          leftValue: "",
          rightStr: "更新时间",
          rightValue: ""
        },
        {
          leftStr: "审批状态",
          leftValue: "",
          rightStr: "最新审批时间",
          rightValue: ""
        },
        {
          leftStr: "上一步审批人",
          leftValue: "",
          rightStr: "当前审批人",
          rightValue: ""
        }
        // {
        //   leftStr: "审批状态",
        //   leftValue: "",
        //   rightStr: "最新审批时间",
        //   rightValue: ""
        // },
        // {
        //   leftStr: "上一步审批人",
        //   leftValue: "",
        //   rightStr: "当前审批人",
        //   rightValue: ""
        // }
      ]
    },
    handleClose() {
src/views/sales/subOrder/index.vue
@@ -137,7 +137,9 @@
    if (!this.isDetail) {
      this.search_map = {}
    } else {
      this.search_map = { ...this.addConfig }
      this.search_map = {
        [this.addConfig.id_name]: this.addConfig.client_name
      }
    }
    this.getData(this.search_map)
  },
src/views/service/serviceContract/DetailServiceContract.vue
@@ -219,9 +219,9 @@
        },
        {
          leftStr: "负责人",
          leftValue: item.memberId,
          leftValue: item.member.username,
          rightStr: "联系人姓名",
          rightValue: item.contactId
          rightValue: item.contact.name
        },
        {
          leftStr: "销售机会",
src/views/service/serviceContract/index.vue
@@ -125,7 +125,7 @@
          { label: "签约日期", prop: "signTime" }, // 签约日期
          { label: "合同类型", prop: "serviceContractType" }, // 合同类型
          { label: "合同状态", prop: "serviceContractStatus" }, // 合同状态
          { label: "负责人", prop: "memberId" }, // 负责人
          { label: "负责人", prop: "member_name" }, // 负责人
          { label: "产品名称", prop: "productName" }, // 产品名称
          { label: "服务开始日", prop: "startTime" }, // 服务开始日
          { label: "服务到期日", prop: "endTime" }, // 服务到期日
@@ -157,7 +157,8 @@
                  ...item,
                  client_name: item.client.name,
                  serviceContractStatus: item.serviceContractStatus.name,
                  serviceContractType: item.serviceContractType.name
                  serviceContractType: item.serviceContractType.name,
                  member_name: item.member.username
                }
              })
              this.tableList.tableInfomation = list || []
src/views/service/serviceFollowup/DetailServiceFollowup.vue
@@ -59,7 +59,7 @@
                <li>
                  <div class="left remark">
                    <div class="content-title">{{ "备注:" }}</div>
                    <div class="content-data">{{ "备注内容" }}</div>
                    <div class="content-data">{{ detailConfig.infomation.remark }}</div>
                  </div>
                </li>
              </ul>