cz 1 rok temu
rodzic
commit
02ba9def46

+ 27 - 116
src/components/process/SendSubscribe.vue

@@ -1,27 +1,12 @@
 <template>
   <div style="width: 100%; padding: 0px 15px">
-    <el-form
-      :model="formData.data"
-      :rules="rules"
-      ref="formDom"
-      label-position="top"
-      :disabled="judgeStatus()"
-    >
+    <el-form :model="formData.data" :rules="rules" ref="formDom" label-position="top" :disabled="judgeStatus()">
       <div class="_t">申购信息</div>
       <el-row :gutter="10">
         <el-col :span="6">
           <el-form-item label="归属公司" prop="corporationId">
-            <el-select
-              v-model="formData.data.corporationId"
-              placeholder="请选择"
-              filterable
-              style="width: 100%"
-            >
-              <el-option
-                v-for="item in companyData"
-                :label="item.name"
-                :value="item.id"
-              >
+            <el-select v-model="formData.data.corporationId" placeholder="请选择" filterable style="width: 100%">
+              <el-option v-for="item in companyData" :label="item.name" :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
@@ -30,121 +15,66 @@
       <el-row :gutter="10">
         <el-col :span="6">
           <el-form-item label="申购部门" prop="deptName">
-            <el-input
-              v-model="formData.data.deptName"
-              placeholder="请输入"
-              disabled
-            >
+            <el-input v-model="formData.data.deptName" placeholder="请输入" disabled>
             </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="申购人" prop="subcribeName">
-            <el-input
-              v-model="formData.data.subcribeName"
-              placeholder="请输入"
-              disabled
-            >
+            <el-input v-model="formData.data.subcribeName" placeholder="请输入" disabled>
             </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="申购时间" prop="subcribeTime">
-            <el-date-picker
-              v-model="formData.data.subcribeTime"
-              type="datetime"
-              placeholder="请选择"
-              disabled
-            />
+            <el-date-picker v-model="formData.data.subcribeTime" type="datetime" placeholder="请选择" disabled />
           </el-form-item>
         </el-col>
       </el-row>
       <el-form-item label="申购说明" prop="subcribeContent">
-        <el-input
-          v-model="formData.data.subcribeContent"
-          placeholder="请输入"
-          type="textarea"
-        >
+        <el-input v-model="formData.data.subcribeContent" placeholder="请输入" type="textarea">
         </el-input>
       </el-form-item>
       <div class="_t">申购明细</div>
       <el-form-item>
-        <el-button
-          type="primary"
-          @click="openProduct = true"
-          style="margin: 10px 0"
-        >
+        <el-button type="primary" @click="openProduct = true" style="margin: 10px 0">
           添加货品
         </el-button>
         <el-table :data="formData.data.subscribeDetailList">
-          <el-table-column
-            prop="goodType"
-            label="货品类型"
-            :formatter="(row) => (row.goodType == 1 ? '产品' : '物料')"
-          />
+          <el-table-column prop="goodType" label="货品类型" :formatter="(row) => (row.goodType == 1 ? '产品' : '物料')" />
           <el-table-column prop="code" label="货品编码" />
           <el-table-column prop="name" label="货品名称" min-width="150" />
           <el-table-column prop="spec" label="规格型号" />
-          <el-table-column
-            prop="unit"
-            label="单位"
-            :formatter="
+          <el-table-column prop="unit" label="单位" :formatter="
               (row) =>
                 row.goodType == 1
                   ? dictValueLabel(row.unit, productUnit)
                   : dictValueLabel(row.unit, productUnitOne)
-            "
-          />
+            " />
           <el-table-column prop="count" label="申购数量" min-width="150">
             <template #default="{ row, $index }">
-              <el-form-item
-                :prop="'subscribeDetailList.' + $index + '.count'"
-                :rules="rules.count"
-                :inline-message="true"
-              >
-                <el-input-number
-                  onmousewheel="return false;"
-                  v-model="row.count"
-                  :precision="4"
-                  :controls="false"
-                  :min="1"
-                />
+              <el-form-item :prop="'subscribeDetailList.' + $index + '.count'" :rules="rules.count" :inline-message="true">
+                <el-input-number onmousewheel="return false;" v-model="row.count" :precision="4" :controls="false" :min="1" />
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column prop="remark" label="备注" min-width="150">
             <template #default="{ row, $index }">
-              <el-form-item
-                :prop="'subscribeDetailList.' + $index + '.remark'"
-                :rules="rules.remark"
-                :inline-message="true"
-              >
+              <el-form-item :prop="'subscribeDetailList.' + $index + '.remark'" :rules="rules.remark" :inline-message="true">
                 <el-input v-model="row.remark" placeholder="请输入" />
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column prop="zip" label="操作" width="100">
             <template #default="{ $index }">
-              <el-button type="primary" link @click="handleRemove($index)"
-                >删除</el-button
-              >
+              <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
       </el-form-item>
     </el-form>
-    <el-dialog
-      v-if="openProduct"
-      v-model="openProduct"
-      title="选择货品"
-      width="70%"
-      append-to-body
-    >
-      <SelectGoods
-        :selectList="acquireSelectList()"
-        @cancel="openProduct = false"
-        @pushGoods="pushGoods"
-      ></SelectGoods>
+    <el-dialog v-if="openProduct" v-model="openProduct" title="选择货品" width="70%" append-to-body>
+      <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
   </div>
 </template>
@@ -195,37 +125,18 @@ const handleRemove = (index) => {
 };
 
 const pushGoods = (goods) => {
-  if (goods && goods.length > 0) {
-    let afterFiltering = [];
-    if (
-      formData.data.subscribeDetailList &&
-      formData.data.subscribeDetailList.length > 0
-    ) {
-      afterFiltering = goods.filter((item) => {
-        let data = formData.data.subscribeDetailList.filter(
-          (itemProduct) => itemProduct.bussinessId === item.id
-        );
-        if (data && data.length > 0) {
-          return false;
-        }
-        return true;
-      });
-    } else {
-      afterFiltering = goods;
-    }
-    const arr = afterFiltering.map((x) => ({
-      goodType: x.goodType,
-      code: x.code,
-      name: x.name,
-      spec: x.spec,
-      unit: x.unit,
-      bussinessId: x.id,
+  if (goods && goods.id) {
+    formData.data.subscribeDetailList.push({
+      goodType: goods.goodType,
+      code: goods.code,
+      name: goods.name,
+      spec: goods.spec,
+      unit: goods.unit,
+      bussinessId: goods.id,
       count: "",
       remark: "",
-    }));
-    formData.data.subscribeDetailList =
-      formData.data.subscribeDetailList.concat(arr);
-    openProduct.value = false;
+    });
+    // openProduct.value = false;
     return ElMessage({
       message: "添加成功!",
       type: "success",

+ 8 - 19
src/views/JXSK/production/workOrder/index.vue

@@ -897,25 +897,14 @@ const getDtlOne = (row, flag) => {
       nodeObject.value = res.customizedNodeObject;
       dialogVisibleOne.value = true;
       res.workOrderProductionProcessesList =
-        res.workOrderProductionProcessesList.map((x) => ({
-          ...x,
-          fileList: x.fileName
-            ? [
-                {
-                  fileName: x.fileName,
-                  id: x.oldId,
-                },
-              ]
-            : [],
-          fileListCopy: x.fileName
-            ? [
-                {
-                  fileName: x.fileName,
-                  id: x.oldId,
-                },
-              ]
-            : [],
-        }));
+        res.workOrderProductionProcessesList.map((x) => {
+          if (x.fileList && x.fileList.length > 0) {
+            x.fileListCopy = x.fileList.map((x) => ({ ...x }));
+          } else {
+            x.fileList = [];
+          }
+          return x;
+        });
       formData.dataOne = {
         workOrderId: row.id,
         workOrderProductionProcessesList: res.workOrderProductionProcessesList,

+ 10 - 45
src/views/login.vue

@@ -7,12 +7,7 @@
           <img src="../assets/images/login-img.png" alt="" />
 
           <div class="swiper-text">
-            <el-carousel
-              height="100px"
-              direction="vertical"
-              indicator-position="none"
-              :autoplay="true"
-            >
+            <el-carousel height="100px" direction="vertical" indicator-position="none" :autoplay="true">
               <el-carousel-item>
                 <h3>{{$t('login.li1H3')}}</h3>
                 <p>{{$t('login.li1P')}}</p>
@@ -29,44 +24,23 @@
           </div>
         </div>
         <div class="right-bg">
-          <el-form
-            ref="loginRef"
-            :model="loginForm"
-            :rules="loginRules"
-            class="login-form"
-          >
+          <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
             <div class="form" style="margin-top: 300px">
               <div class="">{{$t('login.welcomeToLogin')}}~</div>
               <h2>嘉兴双拓 {{$t('login.managementSystem')}}</h2>
               <el-form-item prop="tenantId" style="margin-top: 30px">
-                <el-input
-                  :placeholder="$t('login.pleaseEnterTheTenantId')"
-                  prefix-icon="user"
-                  @keyup.enter="handleLogin"
-                  autocomplete="email"
-                  v-model="loginForm.tenantId"
-                >
+                <el-input :placeholder="$t('login.pleaseEnterTheTenantId')" prefix-icon="user" @keyup.enter="handleLogin" autocomplete="email"
+                          v-model="loginForm.tenantId">
                 </el-input>
               </el-form-item>
               <el-form-item prop="username" style="margin-top: 30px">
-                <el-input
-                  :placeholder="$t('login.pleaseEnterYourAccountNumber')"
-                  prefix-icon="UserFilled"
-                  @keyup.enter="handleLogin"
-                  autocomplete="username"
-                  v-model="loginForm.username"
-                >
+                <el-input :placeholder="$t('login.pleaseEnterYourAccountNumber')" prefix-icon="UserFilled" @keyup.enter="handleLogin"
+                          autocomplete="username" v-model="loginForm.username">
                 </el-input>
               </el-form-item>
               <el-form-item prop="password" style="margin-top: 30px">
-                <el-input
-                  :placeholder="$t('login.pleaseEnterYourPassword')"
-                  prefix-icon="View"
-                  type="password"
-                  v-model="loginForm.password"
-                  autocomplete="current-password"
-                  @keyup.enter="handleLogin"
-                >
+                <el-input :placeholder="$t('login.pleaseEnterYourPassword')" prefix-icon="View" type="password" v-model="loginForm.password"
+                          autocomplete="current-password" @keyup.enter="handleLogin">
                 </el-input>
               </el-form-item>
               <!-- <el-form-item prop="code" class="code" style="margin-top:30px">
@@ -79,18 +53,9 @@
 								<img :src="codeUrl" @click="getCode" class="login-code-img"/>
 							</el-form-item> -->
               <div style="margin-top: 30px">
-                <el-checkbox
-                  v-model="loginForm.rememberMe"
-                  style="margin: 0px 0px 25px 0px"
-                  >{{$t('login.rememberPassword')}}</el-checkbox
-                >
+                <el-checkbox v-model="loginForm.rememberMe" style="margin: 0px 0px 25px 0px">{{$t('login.rememberPassword')}}</el-checkbox>
               </div>
-              <el-button
-                type="primary"
-                @click="handleLogin"
-                style="width: 100%; margin-top: 30px"
-                >{{$t('login.login')}}</el-button
-              >
+              <el-button type="primary" @click="handleLogin" style="width: 100%; margin-top: 30px">{{$t('login.login')}}</el-button>
             </div>
           </el-form>
         </div>

+ 12 - 1
src/views/production/project/technology/index.vue

@@ -231,6 +231,17 @@ const config = computed(() => {
           },
           {
             attrs: {
+              label: "修改",
+              type: "primary",
+              text: true,
+            },
+            el: "button",
+            click() {
+              getDtl(row);
+            },
+          },
+          {
+            attrs: {
               label: "删除",
               type: "danger",
               text: true,
@@ -409,7 +420,7 @@ const getDtl = (row) => {
   modalType.value = "edit";
   proxy.post("/technology/detail", { id: row.id }).then((res) => {
     nodeObject.value = res.nodeObject;
-    productList.value = res.applicableProductsList;
+    // productList.value = res.applicableProductsList;
     // selectLine.value = res.processRouteList.map((x) => x.id);
     formData.data = res;
     dialogVisible.value = true;

+ 21 - 21
src/views/salesMange/salesMange/afterSales/index.vue

@@ -76,9 +76,9 @@
                     <div style="width: 100%; display: flex">
                       <div style="flex: 1">
                         <el-icon color="red" v-if="
-                            submitData[item.productId].quantity &&
-                            submitData[item.productId].remark &&
-                            submitData[item.productId].fileList.length > 0
+                            submitData[item.id].quantity &&
+                            submitData[item.id].remark &&
+                            submitData[item.id].fileList.length > 0
                           " style="margin-right: 10px">
                           <WarnTriangleFilled />
                         </el-icon>
@@ -91,15 +91,15 @@
                   </template>
                   <div>
                     <el-form-item label="售后数量">
-                      <el-input-number onmousewheel="return false;" v-model="submitData[item.productId].quantity" placeholder="请输入"
-                                       style="width: 100%" :precision="0" :controls="false" :min="0" :disabled="isDetail" />
+                      <el-input-number onmousewheel="return false;" v-model="submitData[item.id].quantity" placeholder="请输入" style="width: 100%"
+                                       :precision="0" :controls="false" :min="0" :disabled="isDetail" />
                     </el-form-item>
                     <el-form-item label="售后说明">
-                      <el-input v-model="submitData[item.productId].remark" type="textarea" :disabled="isDetail" />
+                      <el-input v-model="submitData[item.id].remark" type="textarea" :disabled="isDetail" />
                     </el-form-item>
                     <el-form-item label="现场照片" style="margin-top: 20px">
                       <div>
-                        <el-upload v-model:fileList="submitData[item.productId].fileList" action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
+                        <el-upload v-model:fileList="submitData[item.id].fileList" action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
                                    :data="uploadData" multiple :before-upload="handleBeforeUpload" :on-success="handleSuccess"
                                    :on-preview="onPreviewFile">
                           <el-button type="primary" plain :disabled="isDetail">选择</el-button>
@@ -134,7 +134,7 @@
             <div style="width: 100%">
               <TitleInfo content="申请物料" style="margin: 20px 0 20px 0"></TitleInfo>
               <div style="width: 100%">
-                <el-button type="primary" plain @click="openMaterial = true">
+                <el-button type="primary" plain @click="openMaterial = true" v-if="!isDetail">
                   添加物料/半成品
                 </el-button>
                 <el-table :data="formData.followData.afterSalesMaterialsList" style="margin-top: 15px">
@@ -143,8 +143,8 @@
                   <el-table-column prop="quantity" label="数量" width="150">
                     <template #default="{ row, $index }">
                       <el-form-item :prop="'afterSalesMaterialsList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
-                        <el-input-number onmousewheel="return false;" v-model="row.quantity" :precision="0" :controls="false" :min="0"
-                                         @change="changeAmount" style="width:80%" />
+                        <el-input-number onmousewheel="return false;" v-model="row.quantity" :disabled="isDetail" :precision="0" :controls="false"
+                                         :min="0" @change="changeAmount" style="width:80%" />
                       </el-form-item>
                     </template>
                   </el-table-column>
@@ -157,7 +157,7 @@
                       </el-form-item>
                     </template>
                   </el-table-column> -->
-                  <el-table-column prop="zip" label="操作" width="60">
+                  <el-table-column prop="zip" label="操作" width="60" v-if="!isDetail">
                     <template #default="{ $index }">
                       <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
                     </template>
@@ -714,7 +714,8 @@ const handleFollow = (row) => {
     if (row.status == 0) {
       for (let i = 0; i < res.bomDetailList.length; i++) {
         const e = res.bomDetailList[i];
-        submitData.value[e.productId] = {
+        submitData.value[e.id] = {
+          bomDetailId: e.id,
           accessoriesId: e.productId,
           productName: e.productName,
           quantity: null,
@@ -730,7 +731,8 @@ const handleFollow = (row) => {
       let arr = res.bomDetailList.map((x) => x.afterSalesRecordDetail.id);
       for (let i = 0; i < res.bomDetailList.length; i++) {
         const e = res.bomDetailList[i];
-        submitData.value[e.productId] = {
+        submitData.value[e.id] = {
+          bomDetailId: e.id,
           accessoriesId: e.productId,
           productName: e.productName,
           quantity: e.afterSalesRecordDetail.quantity,
@@ -740,7 +742,7 @@ const handleFollow = (row) => {
       }
       formData.followData = res;
       formData.followData.id = row.id;
-      formData.followData.afterSalesMaterialsList = [];
+      // formData.followData.afterSalesMaterialsList = [];
       openFollow.value = true;
       const fileObj = await proxy.post("/fileInfo/getList", {
         businessIdList: arr,
@@ -749,13 +751,11 @@ const handleFollow = (row) => {
         const e = res.bomDetailList[i];
         for (const key in fileObj) {
           if (e.afterSalesRecordDetail.id == key) {
-            submitData.value[e.productId].fileList = fileObj[key].map(
-              (item) => ({
-                raw: item,
-                name: item.fileName,
-                url: item.fileUrl,
-              })
-            );
+            submitData.value[e.id].fileList = fileObj[key].map((item) => ({
+              raw: item,
+              name: item.fileName,
+              url: item.fileUrl,
+            }));
           }
         }
       }