Przeglądaj źródła

修改页面显示 以及客户导入

hurx 1 tydzień temu
rodzic
commit
8f04fc0e5d

+ 40 - 0
src/api/company/bank/types.ts

@@ -39,6 +39,26 @@ export interface BankVO {
    */
   telNo: string;
 
+  /**
+   * 省份编码
+   */
+  provincialNo: string;
+
+  /**
+   * 城市编码
+   */
+  cityNo: string;
+
+  /**
+   * 区县编码
+   */
+  countryNo: string;
+
+  /**
+   * 区县编码
+   */
+  provincialCityCountry: string;
+
   /**
    * 是否显示(0-是,1-否)
    */
@@ -91,6 +111,26 @@ export interface BankForm extends BaseEntity {
    */
   telNo?: string;
 
+  /**
+   * 省份编码
+   */
+  provincialNo?: string;
+
+  /**
+   * 城市编码
+   */
+  cityNo?: string;
+
+  /**
+   * 区县编码
+   */
+  countryNo?: string;
+
+  /**
+   * 区县编码
+   */
+  provincialCityCountry?: string;
+
   /**
    * 是否显示(0-是,1-否)
    */

+ 1 - 0
src/api/system/dept/types.ts

@@ -52,6 +52,7 @@ export interface DeptForm {
   parentId?: number | string;
   children?: DeptForm[];
   deptId?: number | string;
+  deptNo?: string;
   deptName?: string;
   deptCategory?: string;
   orderNum?: number;

+ 64 - 15
src/views/company/bank/index.vue

@@ -12,18 +12,21 @@
 
       <el-table v-loading="loading" border :data="bankList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="银行编号" align="center" prop="bnId" />
+        <el-table-column label="编号" align="center" prop="bnId" />
         <el-table-column label="银行名称" align="center" prop="bnName" />
-        <el-table-column label="银行地址" align="center" prop="bnAddr" />
-        <el-table-column label="银行分类" align="center" prop="bnCatgId" />
+        <el-table-column label="行号" align="center" prop="faxNo" />
+        <!-- <el-table-column label="省" align="center" prop="" />
+        <el-table-column label="市" align="center" prop="" /> -->
+        <el-table-column label="城市" align="center" prop="provincialCityCountry" />
+        <el-table-column label="地址" align="center" prop="bnAddr" />
+        <!-- <el-table-column label="银行分类" align="center" prop="bnCatgId" />
         <el-table-column label="传真" align="center" prop="faxNo" />
-        <el-table-column label="联系电话" align="center" prop="telNo" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="联系电话" align="center" prop="telNo" /> -->
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="备注" align="center" prop="remark" />
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:bank:edit']">编辑</el-button>
@@ -34,28 +37,37 @@
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改银行信息对话框 -->
-    <el-dialog :title="dialog.title" v-model="dialog.visible" width="650px" append-to-body>
+    <el-dialog :title="dialog.title" v-model="dialog.visible" width="750px" append-to-body>
       <el-form ref="bankFormRef" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="银行名称" prop="bnName">
           <el-input v-model="form.bnName" placeholder="请输入银行名称" />
         </el-form-item>
+        <el-form-item label="行号" prop="faxNo">
+          <el-input v-model="form.faxNo" placeholder="请输入银行地址" />
+        </el-form-item>
+        <!-- <el-form-item label="省" prop="">
+          <el-input />
+        </el-form-item>
+        <el-form-item label="市" prop="">
+          <el-input />
+        </el-form-item> -->
+        <el-form-item label="城市" prop="provincialCityCountry">
+          <el-cascader v-model="codeArr" :options="regionData as any" placeholder="请选择" @change="handleChange" style="width: 100%"></el-cascader>
+        </el-form-item>
         <el-form-item label="银行地址" prop="bnAddr">
           <el-input v-model="form.bnAddr" placeholder="请输入银行地址" />
         </el-form-item>
-        <el-form-item label="传真号码" prop="faxNo">
+        <!-- <el-form-item label="传真号码" prop="faxNo">
           <el-input v-model="form.faxNo" placeholder="请输入传真号码" />
         </el-form-item>
         <el-form-item label="联系电话" prop="telNo">
           <el-input v-model="form.telNo" placeholder="请输入联系电话" />
-        </el-form-item>
-        <el-form-item label="是否显示" prop="isShow">
+        </el-form-item> -->
+        <el-form-item label="状态" prop="isShow">
           <el-radio-group v-model="form.isShow">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -70,7 +82,7 @@
 <script setup name="Bank" lang="ts">
 import { listBank, getBank, delBank, addBank, updateBank, changeShowStatus } from '@/api/company/bank';
 import { BankVO, BankQuery, BankForm } from '@/api/company/bank/types';
-
+import { regionData } from 'element-china-area-data';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
 
@@ -83,6 +95,7 @@ const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
 
+const codeArr = ref([]);
 const queryFormRef = ref<ElFormInstance>();
 const bankFormRef = ref<ElFormInstance>();
 
@@ -100,7 +113,7 @@ const initFormData: BankForm = {
   bnCatgId: undefined,
   faxNo: undefined,
   telNo: undefined,
-  isShow: undefined,
+  isShow: '0',
   remark: undefined
 };
 const data = reactive<PageData<BankForm, BankQuery>>({
@@ -144,6 +157,7 @@ const cancel = () => {
 /** 表单重置 */
 const reset = () => {
   form.value = { ...initFormData };
+  codeArr.value = [];
   bankFormRef.value?.resetFields();
 };
 
@@ -159,6 +173,40 @@ const resetQuery = () => {
   handleQuery();
 };
 
+/** 处理区域选择变化 */
+const handleChange = (val: string[]) => {
+  // 保存编码
+  form.value.provincialNo = val[0];
+  form.value.cityNo = val[1];
+  form.value.countryNo = val[2];
+
+  // 根据编码获取名称
+  const names: string[] = [];
+  if (val[0]) {
+    const province = regionData.find((item: any) => item.value === val[0]);
+    if (province) {
+      names.push(province.label);
+
+      if (val[1] && province.children) {
+        const city = province.children.find((item: any) => item.value === val[1]);
+        if (city) {
+          names.push(city.label);
+
+          if (val[2] && city.children) {
+            const county = city.children.find((item: any) => item.value === val[2]);
+            if (county) {
+              names.push(county.label);
+            }
+          }
+        }
+      }
+    }
+  }
+
+  // 将省市区名称用斜杠连接
+  form.value.provincialCityCountry = names.join('/');
+};
+
 /** 多选框选中数据 */
 const handleSelectionChange = (selection: BankVO[]) => {
   ids.value = selection.map((item) => item.id);
@@ -190,6 +238,7 @@ const handleUpdate = async (row?: BankVO) => {
   reset();
   const _id = row?.id || ids.value[0];
   const res = await getBank(_id);
+  codeArr.value = [res.data.provincialNo, res.data.cityNo, res.data.countryNo];
   Object.assign(form.value, res.data);
   dialog.visible = true;
   dialog.title = '修改银行信息';

+ 1 - 1
src/views/company/comCurrency/index.vue

@@ -30,7 +30,7 @@
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="编号" align="center" prop="currencyCode" />
         <el-table-column label="名称" align="center" prop="currencyName" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>

+ 2 - 2
src/views/company/comStaff/index.vue

@@ -34,7 +34,7 @@
     <el-card shadow="never">
       <template #header>
         <el-row :gutter="10" class="mb8">
-          <el-col :span="20"><span>岗位设定信息列表</span> </el-col>
+          <el-col :span="20"><span>人员设定信息列表</span> </el-col>
           <el-col :span="1.5">
             <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:comStaff:add']">新增</el-button>
           </el-col>
@@ -54,7 +54,7 @@
         <el-table-column label="部门名称" align="center" prop="deptName" />
         <el-table-column label="手机号" align="center" prop="phone" />
         <el-table-column label="岗位" align="center" prop="postName" />
-        <el-table-column label="是否显示" align="center" prop="status">
+        <el-table-column label="状态" align="center" prop="status">
           <template #default="scope">
             <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>

+ 2 - 2
src/views/company/company/index.vue

@@ -29,7 +29,7 @@
       </template>
       <el-table v-loading="loading" border :data="companyList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="企业编号" align="center" prop="companyCode" />
+        <el-table-column label="编号" align="center" prop="companyCode" />
         <el-table-column label="企业名称" align="left" prop="companyName" min-width="180" />
         <el-table-column label="成立日期" align="center" prop="foundDate" width="180">
           <template #default="scope">
@@ -39,7 +39,7 @@
         <el-table-column label="法人代表" align="center" prop="corporation" />
         <el-table-column label="办公电话" align="center" prop="phone" />
         <el-table-column label="公司地址" align="center" prop="address" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>

+ 6 - 6
src/views/company/logisticsCompany/index.vue

@@ -12,11 +12,11 @@
 
       <el-table v-loading="loading" border :data="logisticsCompanyList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="编号" align="center" prop="logisticsNo" />
-        <el-table-column label="公司名称" align="center" prop="logisticsName" />
-        <el-table-column label="公司编码" align="center" prop="logisticsCode" />
+        <!-- <el-table-column label="编号" align="center" prop="logisticsNo" /> -->
+        <el-table-column label="编码" align="center" prop="logisticsCode" />
+        <el-table-column label="名称" align="center" prop="logisticsName" />
         <el-table-column label="描述" align="center" prop="logisticsDescription" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>
@@ -34,10 +34,10 @@
     <!-- 添加或修改物流公司对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="600px" append-to-body>
       <el-form ref="logisticsCompanyFormRef" :model="form" :rules="rules" label-width="110px">
-        <el-form-item label="公司名称" prop="logisticsName">
+        <el-form-item label="名称" prop="logisticsName">
           <el-input v-model="form.logisticsName" placeholder="请输入物流公司名称" />
         </el-form-item>
-        <el-form-item label="公司编码" prop="logisticsCode">
+        <el-form-item label="编码" prop="logisticsCode">
           <el-input v-model="form.logisticsCode" placeholder="请输入物流公司编码" />
         </el-form-item>
         <el-form-item label="描述" prop="logisticsDescription">

+ 24 - 13
src/views/company/revenueExpense/index.vue

@@ -29,7 +29,14 @@
       <el-table v-loading="loading" border :data="revenueExpenseList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="编码" align="center" prop="revenueCode" />
-        <el-table-column label="费用类" align="center" prop="expenseFlag">
+        <el-table-column label="名称" align="center" prop="revenueName" />
+        <el-table-column label="所属类别" align="center" prop="revenueFlag">
+          <template #default="scope">
+            <dict-tag :options="revenue_expense_type" :value="scope.row.revenueFlag" />
+          </template>
+        </el-table-column>
+
+        <!-- <el-table-column label="费用类" align="center" prop="expenseFlag">
           <template #default="scope">
             <dict-tag :options="sys_platform_yes_no" :value="scope.row.expenseFlag" />
           </template>
@@ -38,9 +45,8 @@
           <template #default="scope">
             <dict-tag :options="sys_platform_yes_no" :value="scope.row.revenueFlag" />
           </template>
-        </el-table-column>
-        <el-table-column label="费用名称" align="center" prop="revenueName" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        </el-table-column> -->
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>
@@ -58,10 +64,15 @@
     <!-- 添加或修改收入费用设定对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
       <el-form ref="revenueExpenseFormRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="费用名称" prop="revenueName">
+        <el-form-item label="名称" prop="revenueName">
           <el-input v-model="form.revenueName" placeholder="请输入费用名称" />
         </el-form-item>
-        <el-form-item label="费用类" prop="expenseFlag">
+        <el-form-item label="所属类别" prop="revenueFlag">
+          <el-radio-group v-model="form.revenueFlag">
+            <el-radio v-for="dict in revenue_expense_type" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <!-- <el-form-item label="费用类" prop="expenseFlag">
           <el-radio-group v-model="form.expenseFlag">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>
@@ -70,8 +81,8 @@
           <el-radio-group v-model="form.revenueFlag">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>
-        </el-form-item>
-        <el-form-item label="是否显示" prop="isShow">
+        </el-form-item> -->
+        <el-form-item label="状态" prop="isShow">
           <el-radio-group v-model="form.isShow">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>
@@ -99,7 +110,7 @@ import {
 import { RevenueExpenseVO, RevenueExpenseQuery, RevenueExpenseForm } from '@/api/company/revenueExpense/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
+const { sys_platform_yes_no, revenue_expense_type } = toRefs<any>(proxy?.useDict('sys_platform_yes_no', 'revenue_expense_type'));
 
 const revenueExpenseList = ref<RevenueExpenseVO[]>([]);
 const buttonLoading = ref(false);
@@ -122,8 +133,8 @@ const initFormData: RevenueExpenseForm = {
   id: undefined,
   revenueCode: undefined,
   revenueName: undefined,
-  expenseFlag: '1',
-  revenueFlag: '1',
+  expenseFlag: '',
+  revenueFlag: '0',
   isShow: '0',
   dataSource: undefined,
   status: undefined,
@@ -145,8 +156,8 @@ const data = reactive<PageData<RevenueExpenseForm, RevenueExpenseQuery>>({
   },
   rules: {
     revenueName: [{ required: true, message: '费用名称不能为空', trigger: 'blur' }],
-    expenseFlag: [{ required: true, message: '费用类不能为空', trigger: 'change' }],
-    revenueFlag: [{ required: true, message: '收入类不能为空', trigger: 'change' }]
+    // expenseFlag: [{ required: true, message: '费用类不能为空', trigger: 'change' }],
+    revenueFlag: [{ required: true, message: '所属分类不能为空', trigger: 'change' }]
   }
 });
 

+ 2 - 2
src/views/company/warehouse/index.vue

@@ -12,10 +12,10 @@
 
       <el-table v-loading="loading" border :data="warehouseList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="所属公司" align="center" prop="companyName" />
         <el-table-column label="编号" align="center" prop="warehouseCode" />
         <el-table-column label="仓库名称" align="center" prop="warehouseName" />
-        <el-table-column label="所属公司" align="center" prop="companyName" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>

+ 2 - 2
src/views/customer/customerLevel/index.vue

@@ -14,7 +14,7 @@
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="编号" align="center" prop="levelCode" />
         <el-table-column label="客户等级名称" align="center" prop="levelName" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>
@@ -37,7 +37,7 @@
         <el-form-item label="客户等级名称" prop="levelName">
           <el-input v-model="form.levelName" placeholder="请输入客户等级名称" />
         </el-form-item>
-        <el-form-item label="是否显示" prop="isShow">
+        <el-form-item label="状态" prop="isShow">
           <el-radio-group v-model="form.isShow">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>

+ 2 - 2
src/views/customer/customerTag/index.vue

@@ -25,7 +25,7 @@
         </el-table-column>
         <el-table-column label="状态" align="center" prop="status">
           <template #default="scope">
-            <span>{{ scope.row.status == '0' ? '启用' : '不启用' }} </span>
+            <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"></el-switch>
           </template>
         </el-table-column>
         <el-table-column label="备注" align="center" prop="remark" />
@@ -82,7 +82,7 @@
             </div>
           </div>
         </el-form-item>
-        <el-form-item label="是否启用" prop="status">
+        <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
             <el-radio v-for="dict in is_enabled" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>

+ 2 - 2
src/views/customer/customerType/index.vue

@@ -14,7 +14,7 @@
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="编号" align="center" prop="typeCode" />
         <el-table-column label="客户类型名称" align="center" prop="typeName" />
-        <el-table-column label="是否显示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
           </template>
@@ -35,7 +35,7 @@
         <el-form-item label="客户类型名称" prop="typeName">
           <el-input v-model="form.typeName" placeholder="请输入客户类型名称" />
         </el-form-item>
-        <el-form-item label="是否显示" prop="isShow">
+        <el-form-item label="状态" prop="isShow">
           <el-radio-group v-model="form.isShow">
             <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
           </el-radio-group>

+ 14 - 2
src/views/customer/enterpriseScale/index.vue

@@ -19,7 +19,14 @@
 
       <el-table v-loading="loading" border :data="enterpriseScaleList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="编码" align="center" prop="enterpriseScaleCode" />
         <el-table-column label="企业规模" align="center" prop="enterpriseScaleName" />
+        <el-table-column label="状态" align="center" prop="status">
+          <template #default="scope">
+            <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"></el-switch>
+          </template>
+        </el-table-column>
+        <!-- @change="handleStatusChange(scope.row)" -->
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['customer:enterpriseScale:edit']"
@@ -40,6 +47,11 @@
         <el-form-item label="企业规模" prop="enterpriseScaleName">
           <el-input v-model="form.enterpriseScaleName" placeholder="请输入企业规模" />
         </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="form.status">
+            <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
+          </el-radio-group>
+        </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -62,7 +74,7 @@ import {
 import { EnterpriseScaleVO, EnterpriseScaleQuery, EnterpriseScaleForm } from '@/api/customer/enterpriseScale/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
+const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
 const enterpriseScaleList = ref<EnterpriseScaleVO[]>([]);
 const buttonLoading = ref(false);
 const loading = ref(true);
@@ -83,7 +95,7 @@ const dialog = reactive<DialogOption>({
 const initFormData: EnterpriseScaleForm = {
   id: undefined,
   enterpriseScaleName: undefined,
-  status: undefined,
+  status: '0',
   remark: undefined,
   platformCode: undefined
 };

+ 13 - 1
src/views/customer/industryCategory/index.vue

@@ -27,6 +27,12 @@
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="编号" align="center" prop="industryCode" />
         <el-table-column label="所属行业" align="center" prop="industryCategoryName" />
+        <el-table-column label="状态" align="center" prop="status">
+          <template #default="scope">
+            <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"></el-switch>
+          </template>
+        </el-table-column>
+        <!-- @change="handleStatusChange(scope.row)" -->
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['customer:industryCategory:edit']"
@@ -47,6 +53,11 @@
         <el-form-item label="所属行业" prop="industryCategoryName">
           <el-input v-model="form.industryCategoryName" placeholder="请输入所属行业" />
         </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="form.status">
+            <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
+          </el-radio-group>
+        </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -69,6 +80,7 @@ import {
 import { IndustryCategoryVO, IndustryCategoryQuery, IndustryCategoryForm } from '@/api/customer/industryCategory/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
 
 const industryCategoryList = ref<IndustryCategoryVO[]>([]);
 const buttonLoading = ref(false);
@@ -90,7 +102,7 @@ const dialog = reactive<DialogOption>({
 const initFormData: IndustryCategoryForm = {
   id: undefined,
   industryCategoryName: undefined,
-  status: undefined,
+  status: '0',
   remark: undefined,
   platformCode: undefined
 };

+ 236 - 0
src/views/dataUpload/index.vue

@@ -0,0 +1,236 @@
+<template>
+  <div class="p-2">
+    <el-card shadow="never">
+      <template #header>
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="18"><span>数据期初信息列表</span> </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" icon="Top" @click="handleAdd">导入商品</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" icon="Top" @click="handleAdd">导入商品图片</el-button>
+          </el-col>
+          <!-- <el-col :span="1.5">
+            <el-button type="primary" icon="Top" @click="handleAdd">导入供应商</el-button>
+          </el-col> -->
+          <!-- <el-col :span="1.5">
+            <el-button type="primary" icon="Top" @click="handleAdd">导入客户</el-button>
+          </el-col> -->
+          <el-col :span="1.5">
+            <el-dropdown class="mt-[1px]">
+              <el-button type="primary" icon="Top">
+                导入供应商
+                <el-icon class="el-icon--right">
+                  <arrow-down />
+                </el-icon>
+              </el-button>
+              <template #dropdown>
+                <el-dropdown-menu>
+                  <el-dropdown-item icon="Download" @click="importSupplierTemplate">下载模板</el-dropdown-item>
+                  <el-dropdown-item icon="Top" @click="handleSupplierImport">导入数据</el-dropdown-item>
+                </el-dropdown-menu>
+              </template>
+            </el-dropdown>
+          </el-col>
+
+          <el-col :span="1.5">
+            <el-dropdown class="mt-[1px]">
+              <el-button type="primary" icon="Top">
+                导入客户
+                <el-icon class="el-icon--right">
+                  <arrow-down />
+                </el-icon>
+              </el-button>
+              <template #dropdown>
+                <el-dropdown-menu>
+                  <el-dropdown-item icon="Download" @click="importCustomerTemplate">下载模板</el-dropdown-item>
+                  <el-dropdown-item icon="Top" @click="handleCustomerImport">导入数据</el-dropdown-item>
+                </el-dropdown-menu>
+              </template>
+            </el-dropdown>
+          </el-col>
+        </el-row>
+      </template>
+
+      <el-table v-loading="loading" border :data="uploadList" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="上传类型" align="center" prop="" />
+        <el-table-column label="上传名称" align="center" prop="" />
+        <el-table-column label="上传时间" align="center" prop="" />
+
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+          <!-- <template #default="scope"> </template> -->
+        </el-table-column>
+      </el-table>
+
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+    </el-card>
+    <!-- 导入对话框 -->
+    <el-dialog v-model="upload.open" :title="upload.title" width="400px" append-to-body>
+      <el-upload
+        ref="uploadRef"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <el-icon class="el-icon--upload">
+          <i-ep-upload-filled />
+        </el-icon>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <template #tip>
+          <div class="text-center el-upload__tip">
+            <div class="el-upload__tip"><el-checkbox v-model="upload.updateSupport" />是否更新已经存在的{{ upload.name }}数据</div>
+            <span>仅允许导入xls、xlsx格式文件。</span>
+            <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="handleDownloadTemplate">
+              下载模板
+            </el-link>
+          </div>
+        </template>
+      </el-upload>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitFileForm">确 定</el-button>
+          <el-button @click="upload.open = false">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="LogisticsCompany" lang="ts">
+import { globalHeaders } from '@/utils/request';
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
+
+const uploadList = ref<[]>([]);
+const buttonLoading = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref<Array<string | number>>([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+
+const uploadRef = ref<ElUploadInstance>();
+/*** 导入参数 */
+const upload = reactive<ImportOption>({
+  // 是否显示弹出层
+  open: false,
+  // 弹出层标题
+  title: '',
+  name: '',
+  method: '',
+  // 是否禁用上传
+  isUploading: false,
+  // 是否更新已经存在的客户数据
+  updateSupport: 0,
+  // 设置上传的请求头部
+  headers: globalHeaders(),
+  // 上传的地址
+  url: ''
+});
+const queryFormRef = ref<ElFormInstance>();
+
+const dialog = reactive<DialogOption>({
+  visible: false,
+  title: ''
+});
+const initFormData: any = {
+  id: undefined
+};
+const data = reactive<PageData<any, any>>({
+  form: { ...initFormData },
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+
+    params: {}
+  },
+  rules: {}
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+const getList = async () => {
+  loading.value = true;
+  //   uploadList.value = res.rows;
+  //   total.value = res.total;
+  loading.value = false;
+};
+
+/** 多选框选中数据 */
+const handleSelectionChange = (selection: any[]) => {
+  ids.value = selection.map((item) => item.id);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+};
+
+/** 客户导入按钮操作 */
+const handleCustomerImport = () => {
+  upload.name = '客户';
+  upload.title = '客户导入';
+  upload.method = 'importCustomerTemplate';
+  upload.open = true;
+  upload.url = import.meta.env.VITE_APP_BASE_API + '/customer/customerInfo/importData';
+};
+
+/** 客户导入按钮操作 */
+const handleSupplierImport = () => {
+  upload.name = '供应商';
+  upload.title = '供应商导入';
+  upload.method = 'importSupplierTemplate';
+  upload.open = true;
+  upload.url = import.meta.env.VITE_APP_BASE_API + '/customer/info/importData';
+};
+
+/**文件上传中处理 */
+const handleFileUploadProgress = () => {
+  upload.isUploading = true;
+};
+/** 文件上传成功处理 */
+const handleFileSuccess = (response: any, file: UploadFile) => {
+  upload.open = false;
+  upload.isUploading = false;
+  uploadRef.value?.handleRemove(file);
+  ElMessageBox.alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', {
+    dangerouslyUseHTMLString: true
+  });
+  getList();
+};
+
+/** 提交上传文件 */
+function submitFileForm() {
+  uploadRef.value?.submit();
+}
+
+/** 通用下载模板处理函数 */
+const handleDownloadTemplate = () => {
+  // 根据 upload.method 存储的函数名字符串来动态执行
+  // 或者根据 upload.name 判断
+  if (upload.method === 'importCustomerTemplate') {
+    importCustomerTemplate();
+  } else if (upload.method === 'importSupplierTemplate') {
+    importSupplierTemplate();
+  }
+};
+
+/** 下载客户模板操作 */
+const importCustomerTemplate = () => {
+  proxy?.download('customer/customerInfo/importTemplate', {}, `客户导入模板_${new Date().getTime()}.xlsx`);
+};
+
+/** 下载供应商模板操作 */
+const importSupplierTemplate = () => {
+  proxy?.download('customer/info/importTemplate', {}, `供应商导入模板_${new Date().getTime()}.xlsx`);
+};
+
+onMounted(() => {
+  getList();
+});
+</script>

+ 16 - 32
src/views/system/dept/index.vue

@@ -46,9 +46,9 @@
         :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
         :default-expand-all="isExpandAll"
       >
-        <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
-        <el-table-column prop="deptCategory" align="center" label="类别编码" width="200"></el-table-column>
-        <el-table-column prop="orderNum" align="center" label="排序" width="200"></el-table-column>
+        <el-table-column prop="deptName" label="部门名称"></el-table-column>
+        <el-table-column prop="deptNo" align="center" label="类别编码"></el-table-column>
+        <el-table-column prop="orderNum" align="center" label="排序"></el-table-column>
         <el-table-column prop="status" align="center" label="状态" width="100">
           <template #default="scope">
             <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
@@ -61,15 +61,9 @@
         </el-table-column>
         <el-table-column fixed="right" align="center" label="操作">
           <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button v-hasPermi="['system:dept:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)" />
-            </el-tooltip>
-            <el-tooltip content="新增" placement="top">
-              <el-button v-hasPermi="['system:dept:add']" link type="primary" icon="Plus" @click="handleAdd(scope.row)" />
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button v-hasPermi="['system:dept:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)" />
-            </el-tooltip>
+            <el-button v-hasPermi="['system:dept:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)">编辑</el-button>
+            <el-button v-hasPermi="['system:dept:add']" link type="primary" icon="Plus" @click="handleAdd(scope.row)">新增</el-button>
+            <el-button v-hasPermi="['system:dept:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -96,8 +90,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="类别编码" prop="deptCategory">
-              <el-input v-model="form.deptCategory" placeholder="请输入类别编码" />
+            <el-form-item label="类别编码" prop="deptNo">
+              <el-input v-model="form.deptNo" placeholder="请输入类别编码" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -106,36 +100,26 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="负责人" prop="leader">
+            <!-- <el-form-item label="负责人" prop="leader">
               <el-select v-model="form.leader" placeholder="请选择负责人">
                 <el-option v-for="item in deptUserList" :key="item.userId" :label="item.userName" :value="item.userId" />
               </el-select>
-            </el-form-item>
+            </el-form-item> -->
           </el-col>
           <el-col :span="12">
             <el-form-item label="部门经理" prop="managerId">
-              <el-select v-model="form.managerId" placeholder="请选择部门经理" @change="handleManagerChange">
+              <el-select v-model="form.managerId" placeholder="请选择部门经理" @change="handleManagerChange" filterable>
                 <el-option v-for="item in staffOptions" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="部门主管" prop="chargeId">
-              <el-select v-model="form.chargeId" placeholder="请选择部门主管" @change="handleChargeChange">
+              <el-select v-model="form.chargeId" placeholder="请选择部门主管" @change="handleChargeChange" filterable>
                 <el-option v-for="item in staffOptions" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="联系电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
             <el-form-item label="部门状态">
               <el-radio-group v-model="form.status">
@@ -147,11 +131,11 @@
         <el-row>
           <el-col :span="24">
             <!-- 仅当是总控平台时显示 -->
-            <el-form-item v-if="isMainPlatform" label="所属平台" prop="platformCode">
+            <!-- <el-form-item v-if="isMainPlatform" label="所属平台" prop="platformCode">
               <el-select v-model="form.platformCode" placeholder="请选择平台">
                 <el-option v-for="dict in sys_platform_code" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
-            </el-form-item>
+            </el-form-item> -->
           </el-col>
         </el-row>
       </el-form>
@@ -211,7 +195,7 @@ const initFormData: DeptForm = {
   phone: undefined,
   email: undefined,
   status: '0',
-  platformCode: ''
+  platformCode: 'main'
 };
 const initData: PageData<DeptForm, DeptQuery> = {
   form: { ...initFormData },
@@ -226,7 +210,7 @@ const initData: PageData<DeptForm, DeptQuery> = {
     parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
     deptName: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }],
     orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
-    platformCode: [{ required: true, message: '所属平台不能为空', trigger: 'blur' }],
+    // platformCode: [{ required: true, message: '所属平台不能为空', trigger: 'blur' }],
     email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
     phone: [{ pattern: /^1[3456789][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }]
   }

+ 7 - 7
src/views/system/post/index.vue

@@ -88,9 +88,9 @@
             <el-table-column type="selection" width="55" align="center" />
             <el-table-column v-if="false" label="岗位编号" align="center" prop="postId" />
             <el-table-column label="岗位编码" align="center" prop="postCode" />
-            <el-table-column label="类别编码" align="center" prop="postCategory" />
+            <!-- <el-table-column label="类别编码" align="center" prop="postCategory" /> -->
             <el-table-column label="岗位名称" align="center" prop="postName" />
-            <el-table-column label="部门" align="center" prop="deptName" />
+            <!-- <el-table-column label="部门" align="center" prop="deptName" /> -->
             <el-table-column label="排序" align="center" prop="postSort" />
             <el-table-column label="状态" align="center" prop="status">
               <template #default="scope">
@@ -129,7 +129,7 @@
             <el-form-item label="岗位名称" prop="postName">
               <el-input v-model="form.postName" placeholder="请输入岗位名称" />
             </el-form-item>
-            <el-form-item label="部门" prop="deptId">
+            <!-- <el-form-item label="部门" prop="deptId">
               <el-tree-select
                 v-model="form.deptId"
                 :data="deptOptions"
@@ -138,13 +138,13 @@
                 placeholder="请选择部门"
                 check-strictly
               />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="岗位编码" prop="postCode">
               <el-input v-model="form.postCode" placeholder="请输入编码名称" />
             </el-form-item>
-            <el-form-item label="类别编码" prop="postCategory">
+            <!-- <el-form-item label="类别编码" prop="postCategory">
               <el-input v-model="form.postCategory" placeholder="请输入类别编码" />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="岗位顺序" prop="postSort">
               <el-input-number v-model="form.postSort" controls-position="right" :min="0" />
             </el-form-item>
@@ -221,7 +221,7 @@ const data = reactive<PageData<PostForm, PostQuery>>({
   rules: {
     postName: [{ required: true, message: '岗位名称不能为空', trigger: 'blur' }],
     postCode: [{ required: true, message: '岗位编码不能为空', trigger: 'blur' }],
-    deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
+    // deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
     postSort: [{ required: true, message: '岗位顺序不能为空', trigger: 'blur' }]
   }
 });

+ 3 - 6
src/views/system/taxrate/index.vue

@@ -46,7 +46,7 @@
         <el-table-column label="税率名称" align="center" prop="taxrateName" />
         <el-table-column label="税率" align="center" prop="taxrate" />
         <!-- <el-table-column label="数据来源" align="center" prop="dataSource" /> -->
-        <el-table-column label="是否展示" align="center" prop="isShow">
+        <el-table-column label="状态" align="center" prop="isShow">
           <template #default="scope">
             <el-switch v-model="scope.row.isShow" active-value="1" inactive-value="0" @change="handleIsShowChange(scope.row)" />
           </template>
@@ -77,10 +77,7 @@
         <el-form-item label="税率" prop="taxrate">
           <el-input v-model="form.taxrate" placeholder="请输入税率" />
         </el-form-item>
-        <el-form-item label="数据来源" prop="dataSource">
-          <el-input v-model="form.dataSource" placeholder="请输入数据来源" />
-        </el-form-item>
-        <el-form-item label="是否显示:1=是,0=否" prop="isShow">
+        <el-form-item label="是否显示" prop="isShow">
           <el-radio-group v-model="form.isShow">
             <el-radio value="1">是</el-radio>
             <el-radio value="0">否</el-radio>
@@ -126,7 +123,7 @@ const initFormData: TaxrateForm = {
   taxrateName: undefined,
   taxrate: undefined,
   dataSource: undefined,
-  isShow: undefined
+  isShow: '1'
 };
 const data = reactive<PageData<TaxrateForm, TaxrateQuery>>({
   form: { ...initFormData },