gaoluyang
7 小时以前 879249b34397ba1dc2be1ff1c7afd158d35ec340
1.公司-商机管理添加市的字段
已修改11个文件
195 ■■■■■ 文件已修改
src/api/salesManagement/opportunityManagement.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PIMTable/PIMTable.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementLedger/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceLedger/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceRegistration/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/opportunityManagement/index.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPayment/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPaymentHistory/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/opportunityManagement.js
@@ -44,3 +44,18 @@
    data: ids,
  });
}
// 查询省
export function getProvinceList() {
  return request({
    url: "/businessOpportunity/getProvinceList",
    method: "get",
  });
}
// 查询市
export function getCityList(id) {
  return request({
    url: "/businessOpportunity/getCityList",
    method: "get",
    params: id,
  });
}
src/components/PIMTable/PIMTable.vue
@@ -26,9 +26,10 @@
      align="center"
      type="selection"
      width="55"
            fixed="left"
      v-if="isSelection"
    />
    <el-table-column align="center" label="序号" type="index" width="60" />
    <el-table-column align="center" label="序号" type="index" width="60" fixed="left" />
    <el-table-column
      v-for="(item, index) in column"
src/views/procurementManagement/invoiceEntry/index.vue
@@ -125,21 +125,25 @@
    {
      type: "expand",
      dataType: "slot",
            fixed: "left",
      slot: "expand",
    },
    {
      label: "采购订单号",
      prop: "purchaseContractNumber",
            fixed: "left",
      width:150
    },
    {
      label: "销售合同号",
      prop: "salesContractNo",
            fixed: "left",
      width:150
    },
    {
      label: "供应商名称",
      prop: "supplierName",
            fixed: "left",
      width:300
    },
    {
src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -46,7 +46,7 @@
        :column="columns"
        :tableLoading="loading"
        :tableData="dataList"
        :isSelection="true"
        :isSelection="false"
        height="calc(100vh - 19.5em)"
        :isShowSummary="true"
        :summaryMethod="summarizeMainTable"
src/views/procurementManagement/procurementLedger/index.vue
@@ -56,8 +56,8 @@
        height="calc(100vh - 18.5em)"
        stripe
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column type="expand">
        <el-table-column align="center" type="selection" width="55" fixed="left"/>
        <el-table-column type="expand" fixed="left">
          <template #default="props">
            <el-table
              :data="props.row.children"
@@ -95,21 +95,24 @@
            </el-table>
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column align="center" label="序号" type="index" width="60" fixed="left"/>
        <el-table-column
          label="采购合同号"
          prop="purchaseContractNumber"
          width="200"
                    fixed="left"
          show-overflow-tooltip
        />
        <el-table-column
          label="销售合同号"
          prop="salesContractNo"
          width="200"
                    fixed="left"
          show-overflow-tooltip
        />
        <el-table-column
          label="供应商名称"
                    fixed="left"
          width="240"
          prop="supplierName"
          show-overflow-tooltip
src/views/salesManagement/invoiceLedger/index.vue
@@ -28,7 +28,7 @@
    <div class="table_list">
      <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
        :row-key="(row) => row.id" show-summary :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)" stripe>
        <el-table-column align="center" type="selection" width="55" />
<!--        <el-table-column align="center" type="selection" width="55" />-->
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="销售合同号" prop="salesContractNo" show-overflow-tooltip width="180" />
        <el-table-column label="客户合同号" prop="customerContractNo" show-overflow-tooltip width="180" />
src/views/salesManagement/invoiceRegistration/index.vue
@@ -65,8 +65,8 @@
        @selection-change="handleSelectionChange"
        stripe
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column type="expand">
        <el-table-column align="center" type="selection" width="55" fixed="left" />
        <el-table-column type="expand" fixed="left">
          <template #default="props">
            <el-table
              :data="props.row.children"
@@ -128,22 +128,25 @@
            </el-table>
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="合同录入日期" prop="entryDate" width="120" />
        <el-table-column align="center" label="序号" type="index" width="60" fixed="left" />
        <el-table-column label="合同录入日期" prop="entryDate" width="120" fixed="left" />
        <el-table-column
          label="销售合同号"
          prop="salesContractNo"
          show-overflow-tooltip
                    fixed="left"
          width="200"
        />
        <el-table-column
          label="客户合同号"
          prop="customerContractNo"
          width="200"
                    fixed="left"
          show-overflow-tooltip
        />
        <el-table-column
          label="客户名称"
                    fixed="left"
          prop="customerName"
          show-overflow-tooltip
          width="240"
src/views/salesManagement/opportunityManagement/index.vue
@@ -38,7 +38,7 @@
        height="calc(100vh - 18.5em)"
        stripe
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column align="center" type="selection" width="55" fixed="left"/>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="状态" prop="status" width="120">
          <template #default="{ row }">
@@ -50,12 +50,13 @@
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="省份" prop="province" show-overflow-tooltip width="120" />
        <el-table-column label="省份" prop="province" show-overflow-tooltip />
        <el-table-column label="市" prop="city" show-overflow-tooltip/>
        <el-table-column label="客户名称" prop="customerName" show-overflow-tooltip />
        <el-table-column label="商机来源" prop="businessSource" show-overflow-tooltip />
        <!-- <el-table-column label="客户描述" prop="description" show-overflow-tooltip min-width="200" /> -->
        <el-table-column label="录入人" prop="entryPerson" show-overflow-tooltip />
        <el-table-column label="更新日期" prop="updateTime">
        <el-table-column label="录入人" prop="entryPerson" show-overflow-tooltip width="120" />
        <el-table-column label="更新日期" prop="updateTime" width="120">
          <template #default="{ row }">
            {{ formatDate(row.updateTime) }}
          </template>
@@ -113,7 +114,7 @@
    <el-dialog
      v-model="dialogFormVisible"
      :title="operationType === 'add' ? '新建商机' : operationType === 'edit' ? '编辑商机' : operationType === 'addOperation' ? '添加商机' : '商机详情'"
      width="600px"
      width="1000px"
      @close="closeDialog"
    >
      <el-form
@@ -135,12 +136,25 @@
        </el-form-item>
        
        <el-form-item label="省份" prop="province">
          <el-select v-model="form.province" filterable placeholder="请选择省份" style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
          <el-select v-model="form.province" filterable placeholder="请选择省份"
                                         @change="getCityListChange"
                                         style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
            <el-option
              v-for="item in provinceOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="市" prop="city">
          <el-select v-model="form.city" filterable placeholder="请选择市"
                                         style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
            <el-option
              v-for="item in cityOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
@@ -165,7 +179,6 @@
            type="textarea"
            :rows="3"
            placeholder="请输入客户描述"
            maxlength="500"
            show-word-limit
          />
        </el-form-item>
@@ -270,7 +283,7 @@
  addOpportunity, 
  updateOpportunity, 
  delOpportunity,
  addDescription
    addDescription, getProvinceList, getCityList
} from '@/api/salesManagement/opportunityManagement.js'
import { userListNoPage } from '@/api/system/user.js'
import {customerList, getSalesLedgerWithProducts} from '@/api/salesManagement/salesLedger.js'
@@ -309,6 +322,7 @@
  id: undefined,
  status: undefined,
  province: '',
    city: '',
  customerName: '',
  businessSource: '',
  description: '',
@@ -366,43 +380,9 @@
  { value: '项目验收', label: '项目验收' }
]
// 省份选项(示例)
const provinceOptions = [
  { value: '北京市', label: '北京市' },
  { value: '天津市', label: '天津市' },
  { value: '河北省', label: '河北省' },
  { value: '山西省', label: '山西省' },
  { value: '内蒙古自治区', label: '内蒙古自治区' },
  { value: '辽宁省', label: '辽宁省' },
  { value: '吉林省', label: '吉林省' },
  { value: '黑龙江省', label: '黑龙江省' },
  { value: '上海市', label: '上海市' },
  { value: '江苏省', label: '江苏省' },
  { value: '浙江省', label: '浙江省' },
  { value: '安徽省', label: '安徽省' },
  { value: '福建省', label: '福建省' },
  { value: '江西省', label: '江西省' },
  { value: '山东省', label: '山东省' },
  { value: '河南省', label: '河南省' },
  { value: '湖北省', label: '湖北省' },
  { value: '湖南省', label: '湖南省' },
  { value: '广东省', label: '广东省' },
  { value: '广西壮族自治区', label: '广西壮族自治区' },
  { value: '海南省', label: '海南省' },
  { value: '重庆市', label: '重庆市' },
  { value: '四川省', label: '四川省' },
  { value: '贵州省', label: '贵州省' },
  { value: '云南省', label: '云南省' },
  { value: '西藏自治区', label: '西藏自治区' },
  { value: '陕西省', label: '陕西省' },
  { value: '甘肃省', label: '甘肃省' },
  { value: '青海省', label: '青海省' },
  { value: '宁夏回族自治区', label: '宁夏回族自治区' },
  { value: '新疆维吾尔自治区', label: '新疆维吾尔自治区' },
  { value: '台湾省', label: '台湾省' },
  { value: '香港特别行政区', label: '香港特别行政区' },
  { value: '澳门特别行政区', label: '澳门特别行政区' }
]
// 省份选项
const provinceOptions = ref([])
const cityOptions = ref([])
// 获取状态标签类型 
const getStatusTagType = (status) => { 
@@ -516,8 +496,16 @@
  customerList().then((res) => {
    customerOption.value = res
  })
    getProvinceList().then(res => {
        provinceOptions.value = res.data
    })
  
  dialogFormVisible.value = true
}
const getCityListChange = (id) => {
    getCityList({provinceId: id}).then(res => {
        cityOptions.value = res.data
    })
}
// 添加操作
@@ -596,8 +584,43 @@
    customerOption.value = res
  })
  
  // 加载省份列表
  await getProvinceList().then(res => {
    provinceOptions.value = res.data
  })
  // 如果后端返回的是name,需要转换为id
  let provinceId = row.province
  let cityId = row.city
  // 如果province是name字符串,查找对应的id
  if (row.province && typeof row.province === 'string' && !/^\d+$/.test(row.province)) {
    const provinceOption = provinceOptions.value.find(item => item.name === row.province)
    if (provinceOption) {
      provinceId = provinceOption.id
      // 加载对应的城市列表
      await getCityList({ provinceId: provinceId }).then(res => {
        cityOptions.value = res.data
        // 如果city是name字符串,查找对应的id
        if (row.city && typeof row.city === 'string' && !/^\d+$/.test(row.city)) {
          const cityOption = cityOptions.value.find(item => item.name === row.city)
          if (cityOption) {
            cityId = cityOption.id
          }
        }
      })
    }
  } else if (row.province) {
    // 如果province是id,直接加载城市列表
    await getCityList({ id: row.province }).then(res => {
      cityOptions.value = res.data
    })
  }
  // 使用当前账号和当天日期作为默认值
  Object.assign(form, row, {
    province: provinceId, // 使用转换后的id
    city: cityId, // 使用转换后的id
    entryPerson: userStore.nickName, // 设置录入人为当前账号
    entryDate: dayjs().format('YYYY-MM-DD') // 设置录入时间为当天
  })
@@ -619,6 +642,10 @@
        tempFileIds = fileList.value.map(item => item.tempId)
      }
      
      // 将省份和市的id转换为name
      const provinceName = form.province ? provinceOptions.value.find(item => item.id === form.province)?.name || form.province : ''
      const cityName = form.city ? cityOptions.value.find(item => item.id === form.city)?.name || form.city : ''
      let api
      let successMessage
      let submitData
@@ -628,6 +655,8 @@
        successMessage = '新建成功'
        submitData = {
          ...form,
          province: provinceName, // 传name而不是id
          city: cityName, // 传name而不是id
          tempFileIds: tempFileIds,
          type: 9  // 商机管理的类型标识
        }
@@ -649,6 +678,8 @@
        successMessage = '修改成功'
        submitData = {
          ...form,
          province: provinceName, // 传name而不是id
          city: cityName, // 传name而不是id
          tempFileIds: tempFileIds,
          type: 9  // 商机管理的类型标识
        }
src/views/salesManagement/receiptPayment/index.vue
@@ -74,8 +74,8 @@
        stripe
        height="calc(100vh - 21.5em)"
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column type="expand">
        <el-table-column align="center" type="selection" width="55"fixed="left" />
        <el-table-column type="expand"fixed="left">
          <template #default="props">
            <el-table
              :data="props.row.children"
@@ -154,17 +154,19 @@
            </el-table>
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column align="center" label="序号" type="index" width="60"fixed="left" />
        <el-table-column
            label="开票日期"
            prop="invoiceDate"
            show-overflow-tooltip
                        fixed="left"
            width="240"
        />
        <el-table-column
          label="销售合同号"
          prop="salesContractNo"
          show-overflow-tooltip
                    fixed="left"
          width="240"
        />
        <el-table-column
src/views/salesManagement/receiptPaymentHistory/index.vue
@@ -52,7 +52,7 @@
        :column="tableColumn"
        :tableData="tableData"
        :page="page"
        :isSelection="true"
        :isSelection="false"
        :isShowSummary="isShowSummarySon"
        :summaryMethod="summarizeMainTable1"
        :tableLoading="tableLoading"
src/views/salesManagement/salesLedger/index.vue
@@ -41,8 +41,8 @@
      <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
        :expand-row-keys="expandedRowKeys" :row-key="(row) => row.id" show-summary style="width: 100%"
        :summary-method="summarizeMainTable" @expand-change="expandChange" height="calc(100vh - 18.5em)" stripe>
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column type="expand">
        <el-table-column align="center" type="selection" width="55" fixed="left" />
        <el-table-column type="expand" fixed="left">
          <template #default="props">
            <el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable" stripe>
              <el-table-column align="center" label="序号" type="index" width="60" />
@@ -57,10 +57,10 @@
            </el-table>
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="销售合同号" prop="salesContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="客户合同号" prop="customerContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="客户名称" prop="customerName" width="300" show-overflow-tooltip />
        <el-table-column align="center" label="序号" type="index" width="60" fixed="left" />
        <el-table-column label="销售合同号" prop="salesContractNo" width="180" show-overflow-tooltip  fixed="left"/>
        <el-table-column label="客户合同号" prop="customerContractNo" width="180" show-overflow-tooltip fixed="left" />
        <el-table-column label="客户名称" prop="customerName" width="300" show-overflow-tooltip fixed="left" />
        <el-table-column label="业务员" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="项目名称" prop="projectName" width="180" show-overflow-tooltip />
        <el-table-column label="付款方式" prop="paymentMethod" show-overflow-tooltip />