cz vor 1 Jahr
Ursprung
Commit
3df65bb719

+ 95 - 14
src/components/process/SF/Contract.vue

@@ -131,7 +131,7 @@
           <el-button type="primary" @click="openProductCompany = true" plain style="margin-bottom: 16px"
                      v-if="!judgeStatus() && isEditList">产品库</el-button>
           <!-- default-expand-all -->
-          <el-table :data="formData.data.contractProductList" style="width: 100%; ">
+          <el-table :data="formData.data.contractProductList" style="width: 100%; " default-expand-all>
             <el-table-column type="expand" width="50" align="center">
               <template #default="scope">
                 <div style="padding-left:50px">
@@ -156,7 +156,19 @@
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column prop="quantity" label="数量" width="110" />
+                    <el-table-column prop="quantity" label="数量" width="130">
+                      <template #default="{ row, $index }">
+                        <div style="width: 100%">
+                          <el-form-item v-if="isEditList"
+                                        :prop="'contractProductList.' + scope.$index + '.contractProductBomList.' + $index + '.quantity'"
+                                        :rules="rules.quantity" :inline-message="true" class="margin-b-0 wid100">
+                            <el-input-number onmousewheel="return false;" v-model="row.quantity" placeholder="请输入" style="width: 100%" :precision="0"
+                                             :controls="false" :min="1" />
+                          </el-form-item>
+                          <span v-else>{{row.quantity}}</span>
+                        </div>
+                      </template>
+                    </el-table-column>
                     <!-- <el-table-column prop="allQuantity" label="总量" width="80" /> -->
                     <!-- <el-table-column prop="price" label="单价" width="110">
                       <template #default="{ row, $index }">
@@ -172,7 +184,21 @@
                         </div>
                       </template>
                     </el-table-column> -->
-                    <el-table-column prop="remark" label="备注" width="180" />
+                    <el-table-column prop="remark" label="备注" width="180">
+                      <template #default="{ row, $index }">
+                        <div style="width: 100%">
+                          <el-form-item v-if="isEditList" :inline-message="true" class="margin-b-0 wid100">
+                            <el-input v-model="row.remark" placeholder="请输入" style="width: 100%" />
+                          </el-form-item>
+                          <span v-else>{{row.remark}}</span>
+                        </div>
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="操作" width="60" align="center" fixed="right" v-if="isEditList">
+                      <template #default="{ row,$index }">
+                        <el-button type="primary" link @click="handleDeleteMaterial(scope.$index,$index)">删除</el-button>
+                      </template>
+                    </el-table-column>
                   </el-table>
                 </div>
               </template>
@@ -302,9 +328,10 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="操作" width="60" align="center" fixed="right" v-if="!judgeStatus()">
+            <el-table-column label="操作" width="140" align="center" fixed="right" v-if="!judgeStatus() && isEditList">
               <template #default="{ $index }">
-                <el-button type="primary" link @click="handleRemove($index)" v-if="isEditList">删除</el-button>
+                <el-button type="primary" link @click="handleClickSelectMaterial($index)">包材辅材</el-button>
+                <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -362,9 +389,18 @@
       </template>
     </byForm>
 
-    <el-dialog v-if="openProductCompany" v-model="openProductCompany" title="公司产品库" width="90%" append-to-body>
-      <!-- <SelectCompanyProduct @selectProduct="selectProduct" :alreadySelectData="formData.data.contractProductList"></SelectCompanyProduct> -->
+    <el-dialog v-if="openProductCompany" v-model="openProductCompany" title="产品库" width="90%" append-to-body>
       <SelectProduct @selectProduct="selectProduct" :companyId="formData.data.companyId" :isRawMaterial="'1'"></SelectProduct>
+      <template #footer>
+        <el-button @click="openProductCompany = false" size="defualt" v-debounce>关 闭</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog :title="'物料选择'" v-model="openSelectMaterial" width="90%" destroy-on-close>
+      <SelectMaterial :isNeRawMaterial="'1'" @selectMaterial="selectMaterial"></SelectMaterial>
+      <template #footer>
+        <el-button @click="openSelectMaterial = false" size="defualt" v-debounce>关 闭</el-button>
+      </template>
     </el-dialog>
 
     <!-- <el-dialog v-if="copyContract" v-model="copyContract" :title="copyType === 1 ? '合同选择' : '样品单选择'" width="90%" append-to-body>
@@ -376,11 +412,9 @@
 
 <script setup>
 import byForm from "@/components/byForm/index";
-import SelectCompanyProduct from "@/components/product/SelectCompanyProduct.vue";
 import SelectProduct from "@/components/product/SelectProduct.vue";
+import SelectMaterial from "@/components/product/SelectMaterial.vue";
 import Editor from "@/components/Editor/index.vue";
-
-// import SelectCustomerProduct from "@/components/product/SelectCustomerProduct.vue";
 import selectCity from "@/components/selectCity/index.vue";
 import { useRoute } from "vue-router";
 import SelectContract from "@/components/contractCom/selectContract.vue";
@@ -415,6 +449,8 @@ const treeData = ref([]);
 const openProductCompany = ref(false);
 const copyType = ref(1);
 const copyContract = ref(false);
+const indexValue = ref(-1);
+const openSelectMaterial = ref(false);
 const formData = reactive({
   data: {
     contractType: "2",
@@ -976,6 +1012,12 @@ const handlePerson = (item) => {
     formData.data.buyContactNumber = data[0].contactNo;
   }
 };
+
+const handleClickSelectMaterial = (index) => {
+  indexValue.value = index;
+  openSelectMaterial.value = true;
+};
+
 const contractProductBomList = ref([]);
 const selectProduct = (goods) => {
   if (goods && goods.id) {
@@ -990,9 +1032,9 @@ const selectProduct = (goods) => {
           materialId: x.materialId,
           productName: x.materialName,
           productCode: x.materialCode,
-          productLength: x["length"],
-          productWidth: x.width,
-          productHeight: x.height,
+          productLength: x.materialLength,
+          productWidth: x.materialWidth,
+          productHeight: x.materialHeight,
           quantity: x.quantity || null,
           allQuantity: "",
           price: x.materialPrice || null,
@@ -1035,6 +1077,37 @@ const selectProduct = (goods) => {
   }
 };
 
+const selectMaterial = (goods) => {
+  let flag = formData.data.contractProductList[
+    indexValue.value
+  ].contractProductBomList.some((x) => x.materialId == goods.id);
+  if (!flag) {
+    let fileUrl = "";
+    if (goods.fileList && goods.fileList.length > 0) {
+      fileUrl = goods.fileList[0].fileUrl;
+    }
+    formData.data.contractProductList[
+      indexValue.value
+    ].contractProductBomList.push({
+      fileUrl: fileUrl,
+      materialId: goods.id,
+      productName: goods.name,
+      productCode: goods.customCode,
+      productLength: goods["length"],
+      productWidth: goods.width,
+      productHeight: goods.height,
+      quantity: null,
+      price: goods.price || null,
+      amount: "",
+      fileList: [],
+      type: 2,
+    });
+    proxy.msgTip("选择成功");
+  } else {
+    proxy.msgTip("该物料已选择", 2);
+  }
+};
+
 const changeProductPrice = () => {
   let productIds = formData.data.contractProductList.map((x) => x.productId);
   if (productIds && productIds.length > 0) {
@@ -1090,6 +1163,14 @@ const handleRemove = (index) => {
   formData.data.contractProductList.splice(index, 1);
   totalAmount();
 };
+
+const handleDeleteMaterial = (index, sonIndex) => {
+  formData.data.contractProductList[index].contractProductBomList.splice(
+    sonIndex,
+    1
+  );
+};
+
 const calculationAmount = (att = "") => {
   nextTick(() => {
     if (
@@ -1297,7 +1378,7 @@ const handleClickUpload = async (att, flag, index) => {
     path = formData.data.contractProductList[index][att];
   }
   let a = document.createElement("a");
-  a.href = "printer://" + "ftp://192.168.1.13/" + path + "/";
+  a.href = "printer://" + "ftp://121.37.194.75/" + path + "/";
   a.style.display = "none";
   document.body.appendChild(a);
   a.click();

+ 0 - 21
src/components/process/SF/PriceSheet.vue

@@ -1117,27 +1117,6 @@ const changeShroffAccount = (val) => {
   }
 };
 
-const handleClickUpload = async (att, flag, index) => {
-  let res = null;
-  let path = "";
-  if (flag) {
-    proxy.msgTip("请稍后", 2);
-    res = await proxy.post("/fileService/createTempFolder");
-    if (res && res.path) {
-      formData.data.quotationProductList[index][att] = res.path;
-      path = res.path;
-    }
-  } else {
-    path = formData.data.quotationProductList[index][att];
-  }
-  let a = document.createElement("a");
-  a.href = "printer://" + "ftp://192.168.1.13/" + path + "/";
-  a.style.display = "none";
-  document.body.appendChild(a);
-  a.click();
-  document.body.removeChild(a);
-};
-
 const getAllData = (businessId) => {
   proxy.post("/saleQuotation/detail", { id: businessId }).then((res) => {
     res.countryId = res.buyCountryId;

+ 3 - 4
src/components/process/SF/Purchase.vue

@@ -219,8 +219,7 @@
             <el-table-column label="备注" width="200">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'purchaseProductList.' + $index + '.remark'" :rules="rules.remark" :inline-message="true"
-                                class="margin-b-0 wid100">
+                  <el-form-item :prop="'purchaseProductList.' + $index + '.remark'" :inline-message="true" class="margin-b-0 wid100">
                     <el-input v-model="row.remark" placeholder="请输入" style="width: 100%" />
                   </el-form-item>
                 </div>
@@ -448,7 +447,7 @@ const formConfig = computed(() => {
     {
       type: "input",
       prop: "address",
-      itemType: "textarea",
+      itemType: "text",
       label: "详细地址",
       itemWidth: 50,
     },
@@ -578,7 +577,7 @@ const rules = ref({
   deliveryTime: [
     { required: true, message: "请选择交付日期", trigger: "change" },
   ],
-  warranty: [{ required: true, message: "请选择质保期 (天)", trigger: "blur" }],
+  // warranty: [{ required: true, message: "请选择质保期 (天)", trigger: "blur" }],
   payName: [{ required: true, message: "请输入收费项目", trigger: ["blur"] }],
   amount: [{ required: true, message: "请输入金额", trigger: "blur" }],
   remark: [{ required: true, message: "请输入条款内容", trigger: "blur" }],

+ 1 - 1
src/views/EHSD/productLibrary/companyProduct/index.vue

@@ -837,7 +837,7 @@ const handleClickUpload = async (att, flag) => {
     path = formData.data[att];
   }
   let a = document.createElement("a");
-  a.href = "printer://" + "ftp://192.168.1.13/" + path + "/";
+  a.href = "printer://" + "ftp://121.37.194.75/" + path + "/";
   a.style.display = "none";
   document.body.appendChild(a);
   a.click();

+ 26 - 24
src/views/EHSD/saleContract/contractEHSD/index.vue

@@ -393,7 +393,7 @@ const config = computed(() => {
     {
       attrs: {
         label: "销售部门",
-        prop: "companyName",
+        prop: "deptName",
         width: 120,
       },
     },
@@ -572,30 +572,32 @@ const config = computed(() => {
                 },
               }
             : {},
-          {
-            attrs: {
-              label: "作废",
-              type: "danger",
-              text: true,
-            },
-            el: "button",
-            click() {
-              proxy
-                .msgConfirm()
-                .then((res) => {
+          row.orderDistributeStatus == 1
+            ? {}
+            : {
+                attrs: {
+                  label: "作废",
+                  type: "danger",
+                  text: true,
+                },
+                el: "button",
+                click() {
                   proxy
-                    .post("/contract/cancellation", {
-                      id: row.id,
-                    })
+                    .msgConfirm()
                     .then((res) => {
-                      proxy.msgTip("操作成功", 1);
+                      proxy
+                        .post("/contract/cancellation", {
+                          id: row.id,
+                        })
+                        .then((res) => {
+                          proxy.msgTip("操作成功", 1);
 
-                      getList();
-                    });
-                })
-                .catch((err) => {});
-            },
-          },
+                          getList();
+                        });
+                    })
+                    .catch((err) => {});
+                },
+              },
           row.status == 30
             ? {
                 attrs: {
@@ -1264,7 +1266,7 @@ const productionFormConfig = computed(() => [
     propsTreeLabel: "deptName",
     propsTreeValue: "deptId",
     itemWidth: 100,
-    // disabled: companyId.value != "100",
+    disabled: true,
   },
   {
     type: "date",
@@ -1288,7 +1290,7 @@ const clickDistributeProduction = (row) => {
   formData.data = {
     contractId: row.id,
     deliveryPeriod: "",
-    produceCompanyId: row.quotationId ? row.companyId : "",
+    produceCompanyId: row.companyId,
     companyName: row.quotationId ? row.companyName : "",
   };
   productionDialog.value = true;

+ 100 - 81
src/views/EHSD/saleContract/performanceSet/index.vue

@@ -1,16 +1,14 @@
 <template>
   <div class="pageIndexClass">
     <div>
-      <byTable :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading" highlight-current-row
-               :selectConfig="selectConfig" :action-list="[
-              
-        ]" @get-list="getList">
-
-        <template v-for="(month, index) in monthData" v-slot:[month]="{ item }" :key="month">
+      <byTable :hidePagination="true" :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading"
+               highlight-current-row :selectConfig="selectConfig" :action-list="[]" :tableBorder="true" :span-method="objectSpanMethod"
+               @get-list="getList">
+        <template v-for="(month, index) in attrData" v-slot:[month]="{ item }" :key="month">
           <div style="width:100%">
-            <el-input v-model="item.aa" :placeholder="month">
-              ss
-            </el-input>
+            <el-input-number v-model="item[month]" :placeholder="''+monthData[index]+'月绩效'" onmousewheel="return false;" :precision="2"
+                             :controls="false" :min="0" @change="(val)=>handleChangeVal(item,month,val)" style="width:100%">
+            </el-input-number>
           </div>
         </template>
       </byTable>
@@ -31,8 +29,7 @@ const sourceList = ref({
     total: 3,
     pageNum: 1,
     pageSize: 10,
-    keyword: "",
-    staDeliveryPeriod: "",
+    years: new Date().getFullYear() + "",
   },
 });
 const treeData = ref([]);
@@ -44,11 +41,11 @@ const selectConfig = computed(() => [
     itemType: "year",
     label: "年份",
     placeholder: "请选择",
-    prop: "staDeliveryPeriod",
+    prop: "years",
     placeholderOne: "结束日期",
     propOne: "",
     fn: (val) => {
-      console.log(val, "sss");
+      getList();
     },
   },
 ]);
@@ -56,8 +53,15 @@ const config = ref([
   {
     attrs: {
       label: "部门名称",
-      prop: "orderCode",
-      width: 130,
+      prop: "deptName",
+      width: 100,
+    },
+  },
+  {
+    attrs: {
+      label: "组别",
+      prop: "groupName",
+      width: 160,
     },
   },
 ]);
@@ -107,31 +111,12 @@ const rules = ref({
 const getList = async (req) => {
   sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
   loading.value = true;
-  proxy
-    .post("/produceOrderDetail/page", sourceList.value.pagination)
-    .then((res) => {
-      sourceList.value.data = res.rows.map((x) => ({ ...x, isCheck: true }));
-      sourceList.value.pagination.total = res.total;
-      setTimeout(() => {
-        loading.value = false;
-      }, 200);
-      const productIdList = res.rows.map((x) => x.productId);
-      // 请求文件数据并回显
-      if (productIdList.length > 0) {
-        proxy.getFile(productIdList, sourceList.value.data, "productId");
-      }
-
-      const productIdListOne = res.rows.map((x) => x.contractDetailId);
-      // 请求文件数据并回显
-      if (productIdListOne.length > 0) {
-        proxy.getFile(
-          productIdListOne,
-          sourceList.value.data,
-          "contractDetailId",
-          "fileListOne"
-        );
-      }
-    });
+  proxy.post("/deptPerf/list", sourceList.value.pagination).then((res) => {
+    sourceList.value.data = res;
+    setTimeout(() => {
+      loading.value = false;
+    }, 200);
+  });
 };
 
 const processesData = ref([]);
@@ -149,52 +134,86 @@ const monthData = ref([
   "11",
   "12",
 ]);
+const attrData = ref([
+  "january",
+  "february",
+  "march",
+  "april",
+  "may",
+  "june",
+  "july",
+  "august",
+  "september",
+  "october",
+  "november",
+  "december",
+]);
 const getProcesses = () => {
-  proxy
-    .post("/productionProcesses/page", { pageNum: 1, pageSize: 9999 })
-    .then((res) => {
-      for (let i = 0; i < monthData.value.length; i++) {
-        const ele = monthData.value[i];
-        let attrs = {
-          label: `${ele}月`,
-          slot: ele,
-          isNeedHeaderSlot: false,
-          "min-width": 100,
-          // fixed: "right",
-        };
-        config.value.push({
-          attrs,
-        });
-      }
-
-      // config.value.push({
-      //   attrs: {
-      //     label: "操作",
-      //     width: "100",
-      //     align: "center",
-      //     fixed: "right",
-      //   },
-      //   renderHTML(row) {
-      //     return [
-      //       {
-      //         attrs: {
-      //           label: "打印二维码",
-      //           type: "primary",
-      //           text: true,
-      //         },
-      //         el: "button",
-      //         click() {
-      //           printQrCode(row);
-      //         },
-      //       },
-      //     ];
-      //   },
-      // });
-      processesData.value = res.rows;
+  for (let i = 0; i < monthData.value.length; i++) {
+    const ele = monthData.value[i];
+    let attrs = {
+      label: `${ele}月`,
+      slot: attrData.value[i],
+      isNeedHeaderSlot: false,
+      "min-width": 100,
+      // fixed: "right",
+    };
+    config.value.push({
+      attrs,
     });
+  }
 };
 getProcesses();
 getList();
+
+const objectSpanMethod = ({ rowIndex, columnIndex }) => {
+  if (columnIndex === 0) {
+    const _row = flitterData(sourceList.value.data).one[rowIndex];
+    const _col = _row > 0 ? 1 : 0;
+    return {
+      rowspan: _row,
+      colspan: _col,
+    };
+  }
+};
+const flitterData = (arr) => {
+  let spanOneArr = [];
+  let concatOne = 0;
+  arr.forEach((item, index) => {
+    if (index === 0) {
+      spanOneArr.push(1);
+    } else {
+      //注意这里的quarterly是表格绑定的字段,根据自己的需求来改
+      if (item.deptId === arr[index - 1].deptId) {
+        //第一列需合并相同内容的判断条件
+        spanOneArr[concatOne] += 1;
+        spanOneArr.push(0);
+      } else {
+        spanOneArr.push(1);
+        concatOne = index;
+      }
+    }
+  });
+  return {
+    one: spanOneArr,
+  };
+};
+
+const handleChangeVal = (item, month, val) => {
+  if (val) {
+    const data = {
+      id: item.id,
+      deptId: item.deptId,
+      groupId: item.groupId,
+      years: sourceList.value.pagination.years,
+    };
+    data[month] = val;
+    proxy.post("/deptPerf/edit", data).then((res) => {
+      proxy.msgTip("配置成功");
+      getList();
+    });
+  }
+};
 </script>
 
 <style lang="scss" scoped>

+ 1 - 1
src/views/MES/productionOrder/index.vue

@@ -730,7 +730,7 @@ const handleClickUpload = async (att, flag, index) => {
     path = formData.data.contractProductList[index][att];
   }
   let a = document.createElement("a");
-  a.href = "printer://" + "ftp://192.168.1.13/" + path + "/";
+  a.href = "printer://" + "ftp://121.37.194.75/" + path + "/";
   a.style.display = "none";
   document.body.appendChild(a);
   a.click();

+ 11 - 4
src/views/product/material/index.vue

@@ -182,13 +182,20 @@ const config = computed(() => {
     },
     {
       attrs: {
-        label: "物料材质",
-        prop: "material",
-        width: 120,
+        label: "安全库存",
+        prop: "stockThreshold",
+        width: 100,
       },
     },
     // {
     //   attrs: {
+    //     label: "物料材质",
+    //     prop: "material",
+    //     width: 120,
+    //   },
+    // },
+    // {
+    //   attrs: {
     //     label: "物料型号",
     //     prop: "spec",
     //     width: 120,
@@ -424,7 +431,7 @@ const formConfig = computed(() => {
       type: "number",
       prop: "stockThreshold",
       label: "安全库存",
-      precision: 2,
+      precision: 0,
       min: 0,
       controls: false,
       itemWidth: 50,

+ 29 - 0
src/views/purchaseManage/purchaseManage/purchase/index.vue

@@ -13,6 +13,11 @@
             disabled: selectData.length === 0,
             action: () => start(),
           },
+          {
+            text: '全量采购',
+            disabled: selectData.length === 0,
+            action: () => startOne(),
+          },
         ]" @get-list="getList">
         <template #pic="{ item }">
           <div v-if="item.fileList &&item.fileList.length > 0">
@@ -474,6 +479,30 @@ const start = () => {
     });
   }
 };
+const startOne = () => {
+  if (selectData.value.length > 0) {
+    let rowId = selectData.value[0].subcribeId;
+    let ids = sourceList.value.data
+      .filter((x) => x.subcribeId == rowId)
+      .map((y) => y.id)
+      .join();
+    console.log(ids, "aaa");
+    proxy.$router.replace({
+      path: "/platform_manage/process/processApproval",
+      query: {
+        flowKey: "purchase_flow",
+        random: proxy.random(),
+        ids,
+        // submitType: "20",
+      },
+    });
+  } else {
+    return ElMessage({
+      message: "请勾选数据!",
+      type: "info",
+    });
+  }
+};
 const handleClickFile = (file) => {
   window.open(file.fileUrl, "_blank");
 };

+ 4 - 4
src/views/systemTenant/tenant/deptTenant/index.vue

@@ -88,10 +88,10 @@ const typeList = ref([
     label: "公司",
     value: 0,
   },
-  {
-    label: "业务中心",
-    value: 1,
-  },
+  // {
+  //   label: "业务中心",
+  //   value: 1,
+  // },
   {
     label: "部门",
     value: 2,

+ 20 - 11
src/views/systemTenant/tenant/userTenant/index.vue

@@ -17,18 +17,18 @@
 
     </byTable>
 
-    <el-dialog :title="modalType == 'add' ? '添加用户' : '编辑用户'" v-if="dialogVisible" v-model="dialogVisible" width="600" v-loading="loadingDialog">
+    <el-dialog :title="modalType == 'add' ? '添加用户' : '编辑用户'" v-if="dialogVisible" v-model="dialogVisible" width="650" v-loading="loadingDialog">
       <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit">
         <template #deptId>
           <div style="width: 100%">
             <el-tree-select v-model="formData.data.deptId" :data="deptList.data" check-strictly :render-after-expand="false" node-key="deptId"
-                            :props="defaultProps" />
+                            :props="defaultProps" style="width:100%" />
           </div>
         </template>
         <template #account>
-          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.userName" @change="changeUserName"
+          <el-input style="width: 200px; margin-right: 10px" v-model="formData.data.userName" @change="changeUserName"
                     placeholder="请输入用户名"></el-input>
-          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.password" @change="changePassword" placeholder="密码"></el-input>
+          <el-input style="width: 200px; margin-right: 10px" v-model="formData.data.password" @change="changePassword" placeholder="密码"></el-input>
           <span style="color: #409eff; cursor: pointer" @click="newPassword">随机生成</span>
         </template>
       </byForm>
@@ -38,9 +38,11 @@
       </template>
     </el-dialog>
 
-    <el-dialog title="修改密码" v-if="roomDialogVisible" v-model="roomDialogVisible" width="300" v-loading="loading">
+    <el-dialog title="修改密码" v-if="roomDialogVisible" v-model="roomDialogVisible" width="500" v-loading="loading">
+      <div>
+        <el-input v-model="password" placeholder="请输入新密码" @change="changePassword2" />
+      </div>
       <template #footer>
-        <el-input v-model="password" placeholder="请输入新密码" @change="changePassword2" style="margin-bottom: 20px" />
         <el-button @click="roomDialogVisible = false" size="default">取 消</el-button>
         <el-button type="primary" @click="submitPassword(password)" size="default" :loading="submitLoading">确 定</el-button>
       </template>
@@ -80,6 +82,7 @@ const config = computed(() => {
         label: "部门",
         prop: "deptName",
         slot: "deptName",
+        "min-width": 150,
       },
     },
     {
@@ -87,6 +90,7 @@ const config = computed(() => {
         label: "姓名",
         prop: "nickName",
         align: "left",
+        width: 120,
       },
     },
     {
@@ -94,18 +98,21 @@ const config = computed(() => {
         label: "英文名",
         prop: "nickNameEn",
         align: "left",
+        width: 150,
       },
     },
     {
       attrs: {
         label: "用户名",
         prop: "userName",
+        width: 120,
       },
     },
     {
       attrs: {
         label: "系统用户",
         prop: "userType",
+        width: 100,
       },
       render(userType) {
         return userType == 1 ? "是" : "否";
@@ -115,19 +122,21 @@ const config = computed(() => {
       attrs: {
         label: "手机号",
         prop: "phonenumber",
+        width: 180,
       },
     },
     {
       attrs: {
         label: "工号",
         prop: "jobNumber",
+        width: 120,
       },
     },
     {
       attrs: {
         label: "操作",
-        width: "200",
-        align: "right",
+        width: "180",
+        align: "center",
       },
       renderHTML(row) {
         return [
@@ -299,7 +308,7 @@ const formConfig = computed(() => {
       prop: "phonenumber",
       label: "手机号",
       required: true,
-      itemWidth: 50,
+      itemWidth: 100,
       itemType: "text",
     },
     {
@@ -307,7 +316,7 @@ const formConfig = computed(() => {
       prop: "jobNumber",
       label: "工号",
       required: true,
-      itemWidth: 50,
+      itemWidth: 100,
       itemType: "text",
     },
   ];
@@ -372,7 +381,7 @@ const submitForm = () => {
 const getDtl = (row) => {
   dialogVisible.value = true;
   proxy.get(`/tenantUser/${row.userId}`).then((res) => {
-    formData.data = { ...row, roleIds: res.roleIds };
+    formData.data = { ...row, userType: 1, roleIds: res.roleIds };
     modalType.value = "edit";
   });
 };