Преглед изворни кода

修改客户管理中查看功能

hurx пре 23 часа
родитељ
комит
4fa74cb50b

+ 10 - 1
src/views/customer/customerFile/customerInfo/index.vue

@@ -170,7 +170,7 @@
         </el-table-column>
         <el-table-column label="操作" align="center" width="150" fixed="right">
           <template #default="scope">
-            <el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['customer:customerInfo:edit']">查看</el-button>
+            <el-button link type="primary" @click="handleView(scope.row)" v-hasPermi="['customer:customerInfo:edit']">查看</el-button>
             <el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['customer:customerInfo:edit']">编辑</el-button>
             <el-button link type="primary" v-if="scope.row.status == '0'" @click="handleCheck(scope.row)" v-hasPermi="['customer:customerInfo:edit']"
               >审核</el-button
@@ -571,6 +571,15 @@ const handleAdd = () => {
   });
 };
 
+/** 查看按钮操作 */
+const handleView = async (row?: CustomerInfoVO) => {
+  const _id = row?.id || ids.value[0];
+  router.push({
+    path: '/customer/customer-overview',
+    query: { id: _id, status: 'view' }
+  });
+};
+
 /** 修改按钮操作 */
 const handleUpdate = async (row?: CustomerInfoVO) => {
   const _id = row?.id || ids.value[0];

+ 39 - 19
src/views/customer/customerFile/customerInfo/overview/baseInfo.vue

@@ -5,7 +5,7 @@
       <template #header>
         <div class="flex justify-between items-center">
           <span class="font-medium">企业基本信息 </span>
-          <el-button type="primary" style="float: right" @click="handleSave">保存</el-button>
+          <el-button v-if="!isViewMode" type="primary" style="float: right" @click="handleSave">保存</el-button>
           <!-- <span class="font-medium"
             >企业基本信息 / <span style="color: #ff0033">客户编号:{{ customerNumber }}</span></span
           > -->
@@ -15,19 +15,26 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="所属公司" prop="belongCompanyId">
-              <el-select v-model="form.belongCompanyId" placeholder="请选择所属公司" class="w-full" filterable @change="handCompanyChange">
+              <el-select
+                v-model="form.belongCompanyId"
+                placeholder="请选择所属公司"
+                class="w-full"
+                filterable
+                @change="handCompanyChange"
+                :disabled="isViewMode"
+              >
                 <el-option v-for="item in companyList" :key="item.id" :label="`${item.companyCode} , ${item.companyName}`" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="客户名称" prop="customerName">
-              <el-input v-model="form.customerName" placeholder="请输入客户名称"> </el-input>
+              <el-input v-model="form.customerName" placeholder="请输入客户名称" :disabled="isViewMode"> </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="工商名称" prop="businessCustomerName">
-              <el-input v-model="form.businessCustomerName" placeholder="请输入工商名称" @blur="selectBusinessBtn"> </el-input>
+              <el-input v-model="form.businessCustomerName" placeholder="请输入工商名称" @blur="selectBusinessBtn" :disabled="isViewMode"> </el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -35,12 +42,12 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="企业简称" prop="shortName">
-              <el-input v-model="form.shortName" placeholder="请输入企业简称" />
+              <el-input v-model="form.shortName" placeholder="请输入企业简称" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="开票类型" prop="invoiceTypeId">
-              <el-select v-model="form.invoiceTypeId" placeholder="请选择开票类型" class="w-full">
+              <el-select v-model="form.invoiceTypeId" placeholder="请选择开票类型" class="w-full" :disabled="isViewMode">
                 <el-option
                   v-for="item in invoiceTypeList"
                   :key="item.id"
@@ -52,7 +59,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="企业规模" prop="enterpriseScaleId">
-              <el-select v-model="form.enterpriseScaleId" placeholder="请选择企业规模" class="w-full" filterable>
+              <el-select v-model="form.enterpriseScaleId" placeholder="请选择企业规模" class="w-full" filterable :disabled="isViewMode">
                 <el-option
                   v-for="item in enterpriseScaleList"
                   :key="item.id"
@@ -67,14 +74,14 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="客户类别" prop="customerTypeId">
-              <el-select v-model="form.customerTypeId" placeholder="请选择客户类别" class="w-full" filterable>
+              <el-select v-model="form.customerTypeId" placeholder="请选择客户类别" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in customerTypeList" :key="item.id" :label="`${item.typeCode} , ${item.typeName}`" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="行业类别" prop="industryCategoryId">
-              <el-select v-model="form.industryCategoryId" placeholder="请选择行业类别" class="w-full" filterable>
+              <el-select v-model="form.industryCategoryId" placeholder="请选择行业类别" class="w-full" filterable :disabled="isViewMode">
                 <el-option
                   v-for="item in industryCategoryList"
                   :key="item.id"
@@ -86,7 +93,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="客户等级" prop="customerLevelId">
-              <el-select v-model="form.customerLevelId" placeholder="请选择客户等级" class="w-full" filterable>
+              <el-select v-model="form.customerLevelId" placeholder="请选择客户等级" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in customerLevelList" :key="item.id" :label="`${item.levelCode} , ${item.levelName}`" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -96,17 +103,17 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="固定电话" prop="landline">
-              <el-input v-model="form.landline" placeholder="请输入固定电话" />
+              <el-input v-model="form.landline" placeholder="请输入固定电话" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="传真" prop="fax">
-              <el-input v-model="form.fax" placeholder="请输入传真" />
+              <el-input v-model="form.fax" placeholder="请输入传真" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="网址" prop="url">
-              <el-input v-model="form.url" placeholder="请输入网址" />
+              <el-input v-model="form.url" placeholder="请输入网址" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -114,7 +121,7 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="邮政编码" prop="postCode">
-              <el-input v-model="form.postCode" placeholder="请输入邮政编码" />
+              <el-input v-model="form.postCode" placeholder="请输入邮政编码" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -126,6 +133,7 @@
                 class="w-full"
                 value-format="YYYY-MM-DD"
                 style="width: 100%"
+                :disabled="isViewMode"
               />
             </el-form-item>
           </el-col>
@@ -139,6 +147,7 @@
                 value-format="YYYY-MM-DD"
                 style="width: 100%"
                 :disabled-date="(time) => form.validityFromDate && time.getTime() < new Date(form.validityFromDate).getTime()"
+                :disabled="isViewMode"
               />
             </el-form-item>
           </el-col>
@@ -158,12 +167,13 @@
                 placeholder="请选择"
                 @change="handleChange"
                 style="width: 100%"
+                :disabled="isViewMode"
               ></el-cascader>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label-width="0">
-              <el-input v-model="form.address" placeholder="请输入详细地址" />
+              <el-input v-model="form.address" placeholder="请输入详细地址" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -293,7 +303,7 @@
       <template #header>
         <div class="flex justify-between items-center">
           <span class="font-medium">企业开票信息</span>
-          <el-button type="primary" @click="handleAddInvoice">新增</el-button>
+          <el-button v-if="!isViewMode" type="primary" @click="handleAddInvoice">新增</el-button>
         </div>
       </template>
       <el-table :data="invoiceList" border>
@@ -305,7 +315,7 @@
         </el-table-column>
         <el-table-column label="开户行名称" align="center" prop="bankName" min-width="180" />
         <el-table-column label="银行账户" align="center" prop="bankAccount" min-width="180" />
-        <el-table-column label="操作" align="center" width="150" fixed="right">
+        <el-table-column v-if="!isViewMode" label="操作" align="center" width="150" fixed="right">
           <template #default="{ row, $index }">
             <el-button link type="primary" @click="handleEditInvoice(row, $index)">编辑</el-button>
             <el-button link type="danger" @click="removeInvoice(row)">删除</el-button>
@@ -323,14 +333,21 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="业务人员" prop="salesPersonId">
-              <el-select v-model="form.salesPersonId" placeholder="请选择业务人员" class="w-full" filterable @change="handleSalesPersonChange">
+              <el-select
+                v-model="form.salesPersonId"
+                placeholder="请选择业务人员"
+                class="w-full"
+                filterable
+                @change="handleSalesPersonChange"
+                :disabled="isViewMode"
+              >
                 <el-option v-for="item in comStaffList" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="客服人员" prop="serviceStaffId">
-              <el-select v-model="form.serviceStaffId" placeholder="请选择客服人员" class="w-full" filterable>
+              <el-select v-model="form.serviceStaffId" placeholder="请选择客服人员" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in comStaffList" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
@@ -408,6 +425,9 @@ const props = defineProps<{
 
 const route = useRoute();
 const router = useRouter();
+
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
 const unitPriceArr = ref([
   { label: '含税', value: 'True' },
   { label: '不含税', value: 'False' }

+ 56 - 15
src/views/customer/customerFile/customerInfo/overview/contactInfo.vue

@@ -5,7 +5,7 @@
         <el-row :gutter="10" class="mb8" type="flex" justify="space-between" align="middle">
           <span style="font-size: 16px; font-weight: 500">联系人信息列表</span>
           <div style="display: flex; flex-wrap: nowrap; gap: 10px">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd">添加联系人</el-button>
+            <el-button v-if="!isViewMode" type="primary" plain icon="Plus" @click="handleAdd">添加联系人</el-button>
           </div>
         </el-row>
       </template>
@@ -29,10 +29,16 @@
         </el-table-column>
         <el-table-column label="主联系人" align="center" prop="isPrimary">
           <template #default="scope">
-            <el-switch v-model="scope.row.isPrimary" active-value="0" inactive-value="1" @change="handlePrimaryChange(scope.row)"></el-switch>
+            <el-switch
+              v-model="scope.row.isPrimary"
+              active-value="0"
+              inactive-value="1"
+              @change="handlePrimaryChange(scope.row)"
+              :disabled="isViewMode"
+            ></el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <el-table-column v-if="!isViewMode" label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button link type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
             <el-button link type="primary" @click="handleDelete(scope.row)">删除</el-button>
@@ -48,24 +54,24 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="联系人姓名" prop="contactName">
-              <el-input v-model="form.contactName" placeholder="请输入联系人姓名" />
+              <el-input v-model="form.contactName" placeholder="请输入联系人姓名" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="手机号码" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入手机号码" />
+              <el-input v-model="form.phone" placeholder="请输入手机号码" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="办公电话" prop="officePhone">
-              <el-input v-model="form.officePhone" placeholder="请输入办公电话" />
+              <el-input v-model="form.officePhone" placeholder="请输入办公电话" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="自定义登录名" prop="customLoginName">
-              <el-input v-model="form.customLoginName" placeholder="请输入自定义登录名" />
+              <el-input v-model="form.customLoginName" placeholder="请输入自定义登录名" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -83,57 +89,88 @@
                 @change="handleDeptChange"
                 filterable
                 style="width: 100%"
+                :disabled="isViewMode"
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" />
+              <el-input v-model="form.email" placeholder="请输入邮箱" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="采购角色" prop="roleId">
-              <el-select v-model="form.roleId" placeholder="请选择采购角色" clearable filterable style="width: 100%" @change="handleRoleChange">
+              <el-select
+                v-model="form.roleId"
+                placeholder="请选择采购角色"
+                clearable
+                filterable
+                style="width: 100%"
+                @change="handleRoleChange"
+                :disabled="isViewMode"
+              >
                 <el-option v-for="role in roleOptions" :key="role.roleId" :label="role.roleName" :value="role.roleId" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="生日" prop="birthday">
-              <el-date-picker v-model="form.birthday" type="date" placeholder="请选择" class="w-full" value-format="YYYY-MM-DD" style="width: 100%" />
+              <el-date-picker
+                v-model="form.birthday"
+                type="date"
+                placeholder="请选择"
+                class="w-full"
+                value-format="YYYY-MM-DD"
+                style="width: 100%"
+                :disabled="isViewMode"
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="性别" prop="gender">
-              <el-radio-group v-model="form.gender">
+              <el-radio-group v-model="form.gender" :disabled="isViewMode">
                 <el-radio v-for="dict in sys_user_sex" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="启用状态" prop="status">
-              <el-switch v-model="form.status" active-value="0" inactive-value="1" />
+              <el-switch v-model="form.status" active-value="0" inactive-value="1" :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="详细地址" prop="codeArr">
-              <el-cascader v-model="codeArr" :options="regionOptions" placeholder="请选择" @change="handleChange" style="width: 100%"></el-cascader>
+              <el-cascader
+                v-model="codeArr"
+                :options="regionOptions"
+                placeholder="请选择"
+                @change="handleChange"
+                style="width: 100%"
+                :disabled="isViewMode"
+              ></el-cascader>
             </el-form-item>
             <el-form-item prop="addressDetail">
-              <el-input v-model="form.addressDetail" type="textarea" :rows="3" placeholder="请输入详细地址" style="width: 100%" />
+              <el-input
+                v-model="form.addressDetail"
+                type="textarea"
+                :rows="3"
+                placeholder="请输入详细地址"
+                style="width: 100%"
+                :disabled="isViewMode"
+              />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" :loading="buttonLoading" @click="submitForm">确认</el-button>
+          <el-button v-if="!isViewMode" type="primary" :loading="buttonLoading" @click="submitForm">确认</el-button>
           <el-button @click="cancel">取消</el-button>
         </div>
       </template>
@@ -162,12 +199,16 @@ const props = defineProps<{
   customerNo?: string;
 }>();
 
+const route = useRoute();
 const regionOptions = regionData as any;
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { sys_platform_yes_no, sys_user_sex, sys_normal_disable } = toRefs<any>(
   proxy?.useDict('sys_platform_yes_no', 'sys_user_sex', 'sys_normal_disable')
 );
 
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
+
 const customerContactList = ref<CustomerContactVO[]>([]);
 const customerDeptList = ref<CustomerDeptVO[]>([]);
 const buttonLoading = ref(false);

+ 9 - 8
src/views/customer/customerFile/customerInfo/overview/contractManagement.vue

@@ -34,7 +34,9 @@
         <el-row :gutter="10" class="mb8" type="flex" justify="space-between" align="middle">
           <span style="font-size: 16px; font-weight: 500">合同管理信息列表</span>
           <div style="display: flex; flex-wrap: nowrap; gap: 10px">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['customer:contract:add']">新增合同</el-button>
+            <el-button v-if="!isViewMode" type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['customer:contract:add']"
+              >新增合同</el-button
+            >
           </div>
         </el-row>
       </template>
@@ -69,7 +71,7 @@
         </el-table-column>
 
         <el-table-column label="附件管理" align="center" prop="annex" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <el-table-column v-if="!isViewMode" 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:contract:edit']">编辑</el-button>
             <el-button link type="primary" icon="Edit" @click="handleReview(scope.row)" v-hasPermi="['customer:contract:edit']">查看</el-button>
@@ -189,9 +191,14 @@ const props = defineProps<{
   customerNo?: string;
   customerName?: string;
 }>();
+
+const route = useRoute();
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { contract_type, contract_status } = toRefs<any>(proxy?.useDict('contract_type', 'contract_status'));
 
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
+
 const contractList = ref<ContractVO[]>([]);
 const buttonLoading = ref(false);
 const loading = ref(true);
@@ -209,9 +216,6 @@ const dialog = reactive<DialogOption>({
   title: ''
 });
 
-// 是否为查看模式
-const isViewMode = ref(false);
-
 const initFormData: ContractForm = {
   id: undefined,
   customerNo: undefined,
@@ -324,7 +328,6 @@ const handleSelectionChange = (selection: ContractVO[]) => {
 /** 新增按钮操作 */
 const handleAdd = () => {
   reset();
-  isViewMode.value = false; // 取消查看模式
   // 将props中的客户信息赋值给form
   if (props.customerId) {
     form.value.customerId = props.customerId;
@@ -342,7 +345,6 @@ const handleAdd = () => {
 /** 修改按钮操作 */
 const handleUpdate = async (row?: ContractVO) => {
   reset();
-  isViewMode.value = false; // 取消查看模式
   const _id = row?.id || ids.value[0];
   const res = await getContract(_id);
   Object.assign(form.value, res.data);
@@ -352,7 +354,6 @@ const handleUpdate = async (row?: ContractVO) => {
 /** 查看按钮操作 */
 const handleReview = async (row?: ContractVO) => {
   reset();
-  isViewMode.value = true; // 设置为查看模式
   const _id = row?.id || ids.value[0];
   const res = await getContract(_id);
   Object.assign(form.value, res.data);

+ 24 - 14
src/views/customer/customerFile/customerInfo/overview/erpSaleInfo.vue

@@ -6,7 +6,7 @@
         <el-row :gutter="10" class="mb8" type="flex" justify="space-between" align="middle">
           <span style="font-size: 16px; font-weight: 500">ERP销售信息</span>
           <div style="display: flex; flex-wrap: nowrap; gap: 10px">
-            <el-button type="primary" plain icon="Plus" :loading="submitLoading" @click="handleSave">保存</el-button>
+            <el-button v-if="!isViewMode" type="primary" plain icon="Plus" :loading="submitLoading" @click="handleSave">保存</el-button>
           </div>
         </el-row>
       </template>
@@ -14,14 +14,21 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="业务人员" prop="salesPersonId" required>
-              <el-select v-model="salesForm.salesPersonId" placeholder="请选择业务人员" class="w-full" filterable @change="handleSalesPersonChange">
+              <el-select
+                v-model="salesForm.salesPersonId"
+                placeholder="请选择业务人员"
+                class="w-full"
+                filterable
+                @change="handleSalesPersonChange"
+                :disabled="isViewMode"
+              >
                 <el-option v-for="item in comStaffList" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="客服人员" prop="serviceStaffId" required>
-              <el-select v-model="salesForm.serviceStaffId" placeholder="请选择客服人员" class="w-full" filterable>
+              <el-select v-model="salesForm.serviceStaffId" placeholder="请选择客服人员" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in comStaffList" :key="item.staffId" :label="`${item.staffCode} , ${item.staffName}`" :value="item.staffId" />
               </el-select>
             </el-form-item>
@@ -36,7 +43,7 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="信用等级" prop="creditManagementId">
-              <el-select v-model="salesForm.creditManagementId" placeholder="请选择信用等级" class="w-full" filterable>
+              <el-select v-model="salesForm.creditManagementId" placeholder="请选择信用等级" class="w-full" filterable :disabled="isViewMode">
                 <el-option
                   v-for="item in creditLevelList"
                   :key="item.id"
@@ -68,14 +75,14 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="订单审核" prop="orderAudit">
-              <el-select v-model="salesForm.orderAudit" placeholder="请选择" class="w-full" filterable>
+              <el-select v-model="salesForm.orderAudit" placeholder="请选择" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="dict in order_check_way" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="支付密码" prop="creditPaymentPassword">
-              <el-input v-model="salesForm.creditPaymentPassword" type="password" placeholder="请输入支付密码" show-password />
+              <el-input v-model="salesForm.creditPaymentPassword" type="password" placeholder="请输入支付密码" show-password :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -83,21 +90,21 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="结算方式" prop="settlementMethod">
-              <el-select v-model="salesForm.settlementMethod" placeholder="请选择结算方式" class="w-full" filterable>
+              <el-select v-model="salesForm.settlementMethod" placeholder="请选择结算方式" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in settlementMethodList" :key="item.id" :label="item.settlementName" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="客户来源" prop="customerSource">
-              <el-select v-model="salesForm.customerSource" class="w-full" filterable>
+              <el-select v-model="salesForm.customerSource" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="dict in customer_source" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="销售通路" prop="sellChannel">
-              <el-select v-model="salesForm.sellChannel" class="w-full" filterable>
+              <el-select v-model="salesForm.sellChannel" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="dict in sell_channel" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
@@ -106,14 +113,14 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="税码" prop="rateId">
-              <el-select v-model="salesForm.rateId" placeholder="税码" class="w-full" filterable>
+              <el-select v-model="salesForm.rateId" placeholder="税码" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in taxrateList" :key="item.id" :label="item.taxrateNo" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="交易币别" prop="dealCurrencyId">
-              <el-select v-model="salesForm.dealCurrencyId" placeholder="请选择交易币别" class="w-full" filterable>
+              <el-select v-model="salesForm.dealCurrencyId" placeholder="请选择交易币别" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in currencyList" :key="item.id" :label="item.currencyName" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -127,21 +134,21 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="单价含税" prop="unitPrice">
-              <el-select v-model="salesForm.unitPrice" placeholder="单价含税" class="w-full" filterable>
+              <el-select v-model="salesForm.unitPrice" placeholder="单价含税" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="item in unitPriceArr" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="账款额度超限" prop="creditLimit">
-              <el-select v-model="salesForm.creditLimit" placeholder="请选择账款额度超限" class="w-full" filterable>
+              <el-select v-model="salesForm.creditLimit" placeholder="请选择账款额度超限" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="dict in erp_is_enabled" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="账款超期" prop="creditTimeLimit">
-              <el-select v-model="salesForm.creditTimeLimit" placeholder="请选择账款超期" class="w-full" filterable>
+              <el-select v-model="salesForm.creditTimeLimit" placeholder="请选择账款超期" class="w-full" filterable :disabled="isViewMode">
                 <el-option v-for="dict in erp_is_enabled" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
@@ -183,6 +190,9 @@ const props = defineProps<{
 const route = useRoute();
 const router = useRouter();
 
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
+
 const unitPriceArr = ref([
   { label: '含税', value: 'True' },
   { label: '不含税', value: 'False' }

+ 17 - 12
src/views/customer/customerFile/customerInfo/overview/orgStructure.vue

@@ -5,7 +5,7 @@
         <el-row :gutter="10" class="mb8" type="flex" justify="space-between" align="middle">
           <span style="font-size: 16px; font-weight: 500">企业组织结构信息列表</span>
           <div style="display: flex; flex-wrap: nowrap; gap: 10px">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd()">新增部门</el-button>
+            <el-button v-if="!isViewMode" type="primary" plain icon="Plus" @click="handleAdd()">新增部门</el-button>
           </div>
         </el-row>
       </template>
@@ -22,7 +22,7 @@
             <el-tag v-else type="info">停用</el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" width="200">
+        <el-table-column v-if="!isViewMode" label="操作" align="center" width="200">
           <template #default="scope">
             <el-button link type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
             <el-button link type="primary" @click="handleAdd(scope.row)">新增</el-button>
@@ -45,27 +45,28 @@
             check-strictly
             :render-after-expand="false"
             style="width: 240px"
+            :disabled="isViewMode"
           />
         </el-form-item>
         <el-form-item label="部门名称" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="请输入部门名称" style="width: 240px" />
+          <el-input v-model="form.deptName" placeholder="请输入部门名称" style="width: 240px" :disabled="isViewMode" />
         </el-form-item>
         <el-form-item label="部门主管" prop="deptManage">
-          <el-select v-model="form.deptManage" placeholder="请选择" clearable style="width: 240px">
+          <el-select v-model="form.deptManage" placeholder="请选择" clearable style="width: 240px" :disabled="isViewMode">
             <el-option v-for="manage in customerContactList" :key="manage.id" :label="manage.contactName" :value="manage.id" />
           </el-select>
         </el-form-item>
         <el-row>
           <el-col :span="12">
             <el-form-item label="是否启用部门">
-              <el-radio-group v-model="form.status">
+              <el-radio-group v-model="form.status" :disabled="isViewMode">
                 <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-col>
           <el-col :span="12">
             <el-form-item label="是否额度控制">
-              <el-radio-group v-model="form.isLimit">
+              <el-radio-group v-model="form.isLimit" :disabled="isViewMode">
                 <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>
@@ -78,14 +79,14 @@
             placeholder="请选择年度"
             value-format="YYYY"
             style="width: 240px"
-            :disabled="form.isLimit == '1'"
+            :disabled="form.isLimit == '1' || isViewMode"
           />
         </el-form-item>
         <div style="color: #999; font-size: 12px; margin-left: 120px; margin-bottom: 18px">
           只能对当期年度进行额度设置,往期年度,显示最后一日数据,无法充值额度。
         </div>
         <el-form-item v-if="form.isLimit === '0'" label="分项费用类型" prop="expenseTypeId">
-          <el-select v-model="form.expenseTypeId" placeholder="请选择" style="width: 240px" @change="expenseTypeChange">
+          <el-select v-model="form.expenseTypeId" placeholder="请选择" style="width: 240px" @change="expenseTypeChange" :disabled="isViewMode">
             <el-option v-for="item in expenseTypeList" :key="item.id" :label="item.expenseName" :value="item.id" />
           </el-select>
           <!-- <el-button type="primary" link style="margin-left: 12px">查询其他分项费用情况</el-button> -->
@@ -100,13 +101,13 @@
           <el-input v-model="form.residueYearlyBudget" style="width: 240px" disabled />
         </el-form-item>
         <el-form-item v-if="form.isLimit === '0'" label="充值额度" prop="recharge">
-          <el-input v-model="form.recharge" style="width: 240px" />
+          <el-input v-model="form.recharge" style="width: 240px" :disabled="isViewMode" />
         </el-form-item>
         <el-form-item label="绑定状态">
-          <el-switch v-model="form.bindStatus" :active-value="'0'" :inactive-value="'1'" />
+          <el-switch v-model="form.bindStatus" :active-value="'0'" :inactive-value="'1'" :disabled="isViewMode" />
         </el-form-item>
         <el-form-item v-if="form.bindStatus === '0'" label="绑定地址" prop="bindAddress">
-          <el-select v-model="form.bindAddress" placeholder="请选择" clearable style="width: 100%">
+          <el-select v-model="form.bindAddress" placeholder="请选择" clearable style="width: 100%" :disabled="isViewMode">
             <el-option
               v-for="addr in shippingAddressList"
               :key="addr.id"
@@ -126,7 +127,7 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+          <el-button v-if="!isViewMode" :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
           <el-button @click="cancel">取 消</el-button>
         </div>
       </template>
@@ -157,8 +158,12 @@ const props = defineProps<{
   customerName?: string;
 }>();
 
+const route = useRoute();
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
+
 const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
 
 const customerDeptList = ref<CustomerDeptVO[]>([]);

+ 21 - 8
src/views/customer/customerFile/customerInfo/overview/shippingAddress.vue

@@ -5,7 +5,9 @@
         <el-row :gutter="10" class="mb8" type="flex" justify="space-between" align="middle">
           <span style="font-size: 16px; font-weight: 500">收货地址信息列表</span>
           <div style="display: flex; flex-wrap: nowrap; gap: 10px">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['customer:shippingAddress:add']">添加地址</el-button>
+            <el-button v-if="!isViewMode" type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['customer:shippingAddress:add']"
+              >添加地址</el-button
+            >
           </div>
         </el-row>
       </template>
@@ -25,7 +27,7 @@
             ></el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <el-table-column v-if="!isViewMode" 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:shippingAddress:edit']"
               >编辑</el-button
@@ -43,27 +45,34 @@
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="650px" append-to-body>
       <el-form ref="shippingAddressFormRef" :model="form" :rules="rules" label-width="110px">
         <el-form-item label="收货人" prop="consignee">
-          <el-input v-model="form.consignee" placeholder="请输入收货人姓名" />
+          <el-input v-model="form.consignee" placeholder="请输入收货人姓名" :disabled="isViewMode" />
         </el-form-item>
         <!-- <el-form-item label="部门名称" prop="deptName">
           <el-input v-model="form.deptName" placeholder="请输入部门名称" />
         </el-form-item> -->
         <el-form-item label="手机号码" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入联系电话" />
+          <el-input v-model="form.phone" placeholder="请输入联系电话" :disabled="isViewMode" />
         </el-form-item>
         <el-form-item label="邮政编码" prop="postal">
-          <el-input v-model="form.postal" placeholder="请输入邮政编码" />
+          <el-input v-model="form.postal" placeholder="请输入邮政编码" :disabled="isViewMode" />
         </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-cascader
+            v-model="codeArr"
+            :options="regionData as any"
+            placeholder="请选择"
+            @change="handleChange"
+            style="width: 100%"
+            :disabled="isViewMode"
+          ></el-cascader>
         </el-form-item>
         <el-form-item prop="address">
-          <el-input v-model="form.address" type="textarea" placeholder="请输入内容" />
+          <el-input v-model="form.address" type="textarea" placeholder="请输入内容" :disabled="isViewMode" />
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+          <el-button v-if="!isViewMode" :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
           <el-button @click="cancel">取 消</el-button>
         </div>
       </template>
@@ -91,7 +100,11 @@ const props = defineProps<{
   customerNo?: string;
 }>();
 
+const route = useRoute();
 const shippingAddressList = ref<ShippingAddressVO[]>([]);
+
+// 查看模式
+const isViewMode = computed(() => route.query.status === 'view');
 const buttonLoading = ref(false);
 const loading = ref(true);
 const showSearch = ref(true);