Browse Source

bug修改,公共模块调整

asd26269546 1 year ago
parent
commit
e37fd2a8e2

+ 6 - 2
src/App.vue

@@ -1,6 +1,10 @@
 <template>
-
-  <router-view/>
+  <div>
+    <router-view/>
+    
+  </div>
+  
+  
 </template>
 <script setup>
 

+ 4 - 0
src/assets/css/index.scss

@@ -204,6 +204,10 @@ li {
     border-radius: 0 !important;
 }
 
+.van-field__label--top{
+    color:#666!important;
+}
+
 .van-form {
     margin-top: 6px !important;
     border: 0 !important;

+ 29 - 29
src/components/testForm/index.vue

@@ -26,8 +26,8 @@
             :placeholder="i.placeholder ? i.placeholder : '请输入'"
             :clearable="i.clearable ? i.clearable : false"
             :readonly="getFieldReadonly(i)"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)"
+            :rules="getRules(i)"
+            :required="getRequired(i)"
             :right-icon="i.isNeedRightBtn ? i.rightIcon : ''"
             @click-right-icon="i.isNeedRightBtn ? i.rightIconClick() : () => {}"
             @blur="i.isNeedBlurMethon ? i.blurMethon(formData[i.prop]) : () => {}"
@@ -38,13 +38,13 @@
             ">
           </van-field>
           <!-- switch -->
-          <van-field v-if="i.type == 'switch'" :label="i.label" :name="i.prop" :required="getRequired(i.prop)">
+          <van-field v-if="i.type == 'switch'" :label="i.label" :name="i.prop" :required="getRequired(i)">
             <template #input>
               <van-switch v-model="formData[i.prop]" />
             </template>
           </van-field>
           <!-- 多选checkbox -->
-          <van-field v-if="i.type == 'checkbox'" :label="i.label" :name="i.prop" :rules="getRules(i.prop)" :required="getRequired(i.prop)">
+          <van-field v-if="i.type == 'checkbox'" :label="i.label" :name="i.prop" :rules="getRules(i)" :required="getRequired(i)">
             <template #input>
               <van-checkbox-group v-model="formData[i.prop]" direction="horizontal">
                 <van-checkbox shape="square" v-for="j in i.data" :key="j.value" :name="j.value">{{ j.text }}</van-checkbox>
@@ -52,7 +52,7 @@
             </template>
           </van-field>
           <!-- 单选radio -->
-          <van-field v-if="i.type == 'radio'" :label="i.label" :name="i.prop" :rules="getRules(i.prop)" :required="getRequired(i.prop)">
+          <van-field v-if="i.type == 'radio'" :label="i.label" :name="i.prop" :rules="getRules(i)" :required="getRequired(i)">
             <template #input>
               <van-radio-group v-model="formData[i.prop]" direction="horizontal">
                 <van-radio v-for="j in i.data" :key="j.value" :name="j.value || j.id">{{ j.label || j.title }}</van-radio>
@@ -70,8 +70,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (formOption.readonly || i.readonly ? '' : (i.showPicker = true))"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
           </van-field>
           <van-popup v-model:show="i.showPicker" round position="bottom" v-if="i.type == 'picker' && i.itemType == 'onePicker'">
             <van-picker
@@ -91,8 +91,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (!formOption.readonly ? (i.showPicker = true) : '')"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
           </van-field>
           <van-popup
             v-model:show="i.showPicker"
@@ -114,8 +114,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (!formOption.readonly ? (i.showPicker = true) : '')"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
           </van-field>
           <van-popup v-model:show="i.showPicker" round position="bottom" v-if="i.type == 'picker' && i.itemType == 'datePicker'">
             <van-date-picker
@@ -136,8 +136,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (!formOption.readonly ? (i.needDefault ? defaultTimeFn(i, index) : (i.showPicker = true)) : '')"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
           </van-field>
           <van-popup v-model:show="i.showPicker" round position="bottom" v-if="i.type == 'picker' && i.itemType == 'datePickerTime'">
             <van-picker-group :tabs="['日期', '时间']" @confirm="() => datePickerTimeConfirm(i, index)" @cancel="i.showPicker = false">
@@ -155,8 +155,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (!formOption.readonly ? (i.showPicker = true) : '')"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)" />
+            :rules="getRules(i)"
+            :required="getRequired(i)" />
           <van-popup v-if="i.type == 'cascader' && i.itemType == 'city'" v-model:show="i.showPicker" round position="bottom">
             <van-cascader
               v-model="formData[i.prop]"
@@ -176,8 +176,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="() => (!formOption.readonly ? (i.showPicker = true) : '')"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)" />
+            :rules="getRules(i)"
+            :required="getRequired(i)" />
           <van-popup v-if="i.type == 'cascader' && i.itemType == 'common'" v-model:show="i.showPicker" round position="bottom">
             <van-cascader
               v-model="formData[i.prop]"
@@ -195,7 +195,7 @@
             </template>
           </van-field>
           <!-- 插槽 -->
-          <van-field v-if="i.type == 'slot'" :label="i.label" :rules="getRules(i.prop)" :required="getRequired(i.prop)">
+          <van-field v-if="i.type == 'slot'" :label="i.label" :rules="getRules(i)" :required="getRequired(i)">
             <template #input>
               <div style="width: 100%">
                 <slot :name="i.slotName"> {{ i.slotName }}插槽占位符 </slot>
@@ -230,8 +230,8 @@
             :placeholder="i.placeholder ? i.placeholder : '请输入'"
             :clearable="i.clearable ? i.clearable : false"
             :readonly="getFieldReadonly(i)"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)"
+            :rules="getRules(i)"
+            :required="getRequired(i)"
             @change="
               (val) => {
                 return i.changeFn ? i.changeFn(index, val) : () => {};
@@ -248,8 +248,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="handleListItemClick(i, index, sonIndex)"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
             <template #input v-if="i.isShowScanCode">
               <div style="display: flex; height: 24px">
                 <div style="width: calc(100vw - 100px)">
@@ -271,8 +271,8 @@
             :readonly="true"
             :placeholder="i.placeholder ? i.placeholder : '请选择'"
             @click="handleListItemClick(i, index, sonIndex)"
-            :rules="getRules(i.prop)"
-            :required="getRequired(i.prop)">
+            :rules="getRules(i)"
+            :required="getRequired(i)">
           </van-field>
         </div>
       </van-cell-group>
@@ -368,13 +368,13 @@ const handleOtherBtnClick = () => {
 };
 
 // 获取验证规则
-const getRules = (prop) => {
-  if (rules.value.hasOwnProperty(prop) && rules.value[prop]) {
-    return rules.value[prop];
+const getRules = (i) => {
+  if (rules.value.hasOwnProperty(i.prop) && rules.value[i.prop] && !getFieldReadonly(i) && !formOption.readonly) {
+    return rules.value[i.prop];
   }
 };
-const getRequired = (prop) => {
-  if (rules.value.hasOwnProperty(prop) && rules.value[prop]) {
+const getRequired = (i) => {
+  if (rules.value.hasOwnProperty(i.prop) && rules.value[i.prop] && !getFieldReadonly(i) && !formOption.readonly) {
     return true;
   }
   return false;

+ 4 - 1
src/router/index.js

@@ -34,7 +34,10 @@ const routes = [{
 			{
 				path: 'working',
 				name: '工作台',
-				component: () => import('../views/working/index.vue')
+				component: () => import('../views/working/index.vue'),
+				meta: {
+					keepAlive: true
+				}
 			},
 			{
 				path: 'home',

+ 11 - 1
src/views/main.vue

@@ -1,6 +1,16 @@
 <template>
 	<div class="main">
-		<router-view />
+		<!-- <KeepAlive>
+			<router-view />
+    	</KeepAlive> -->
+		<router-view v-slot="{ Component, route }">
+			<Transition>
+			<keep-alive  include="working">
+				<component v-if="!route.meta.link" :is="Component" :key="route.fullPath"/>
+			</keep-alive>
+			</Transition>
+			
+		</router-view>
 		<div class="footer"></div>
 	</div>
 	<van-tabbar v-model="tabType" v-if="routerName != '/main/processDtl'">

+ 29 - 11
src/views/processApproval/components/SendPurchase.vue

@@ -5,6 +5,7 @@
       label-align="top"
       style="margin-top: 20px"
       ref="formDom"
+      :readonly="route.query.processType == 10 || route.query.processType == 20"
     >
       <van-cell-group inset>
         <van-field
@@ -20,7 +21,7 @@
             },
           ]"
           :readonly="true"
-          required
+          :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
         />
         <van-field
           v-model="formData.purchaseName"
@@ -34,7 +35,7 @@
               message: $t('procureList.procurementPersonNameCanNotBeEmpty'),
             },
           ]"
-          required
+          :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
           :readonly="true"
         />
         <van-field
@@ -50,7 +51,7 @@
               message: $t('procureList.procurementTimeCanNotBeEmpty'),
             },
           ]"
-          required
+          :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
           :readonly="true"
         />
         <van-popup v-model:show="timePicker" position="bottom">
@@ -72,7 +73,7 @@
               message: $t('procureList.supplierCanNotBeEmpty'),
             },
           ]"
-          required
+          :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
         />
         <van-popup v-model:show="typeModal" position="bottom">
           <van-picker
@@ -125,9 +126,9 @@
                 message: $t('procureList.procurementProductCanNotBeEmpty'),
               },
             ]"
-            required
+            :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
           />
-          <van-field
+          <!-- <van-field
             v-model="formData.purchaseDetailList[index].count2"
             :label="$t('procureList.quantity')"
             :placeholder="$t('procureList.pleaseEnterTheQuantity')"
@@ -137,10 +138,10 @@
                 message: $t('procureList.quantityCanNotBeEmpty'),
               },
             ]"
-            required
+            :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
             type="number"
             :readonly="true"
-          />
+          /> -->
 
           <van-field
             v-model="formData.purchaseDetailList[index].count"
@@ -154,7 +155,7 @@
                 message: $t('procureList.thisPurchaseCanNotBeEmpty'),
               },
             ]"
-            required
+            :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
             type="number"
           />
           <van-field
@@ -169,7 +170,7 @@
                 message: $t('procureList.unitPriceCanNotBeEmpty'),
               },
             ]"
-            required
+            :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
             type="number"
           />
           <van-field
@@ -241,6 +242,7 @@ const handleAddRow = () => {
     quantity: "",
     content: "",
     count: "",
+    
   });
 };
 
@@ -289,6 +291,7 @@ const changePrice = (index) => {
     },
     0
   );
+  changeAmount()
 };
 const changeAmount = () => {
   for (let i = 0; i < formData.value.purchaseDetailList.length; i++) {
@@ -318,6 +321,15 @@ const getDetails = (id) => {
   });
 };
 
+const getSupplyName = (id) => {
+  for (let i = 0; i < supplyList.value.length; i++) {
+    const element = supplyList.value[i];
+    if (element.id == id) {
+      return element.name;
+    }
+  }
+};
+
 const columns = ref([]);
 const columnsOne = ref([]);
 const submitType = ref("add");
@@ -423,7 +435,12 @@ watch(
       route.query.processType == 20 ||
       route.query.processType == 30
     ) {
-      formData.value = refProps.queryData.value;
+      
+      formData.value = JSON.parse(JSON.stringify(refProps.queryData.value));
+      setTimeout(() => {
+        formData.value.supplyName = getSupplyName(refProps.queryData.value.supplyId);
+      }, 500);
+      
     }
   },
   {
@@ -431,6 +448,7 @@ watch(
   }
 );
 
+
 watch(
   () => formData.value.supplyId,
   (val) => {

+ 0 - 5
src/views/processApproval/components/SendSubscribe copy.vue

@@ -1,5 +0,0 @@
-<template>
-    <div>
-        12312312
-    </div>
-</template>

+ 6 - 6
src/views/processApproval/components/SendSubscribe.vue

@@ -18,7 +18,7 @@
 								:placeholder="$t('purchased.selectProcurementDepartment')"
 								:rules="[{ required: true, message: $t('purchased.procurementDepartmentCanNotBeEmpty') }]"
 								@click="route.query.processType == 10 || route.query.processType == 20 ? typeModal = false : typeModal = true"
-								required
+								:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 							/>
 							<van-popup v-model:show="typeModal" round position="bottom">
 								<van-picker
@@ -34,7 +34,7 @@
 								:label="$t('purchased.procurementPersonName')"
 								:placeholder="$t('purchased.pleaseFillInTheProcurementPersonName')"
 								:rules="[{ required: true, message: $t('purchased.procurementPersonNameCanNotBeEmpty') }]"
-								required
+								:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 							/>
 							<van-field
 								v-model="formData.subcribeTime"
@@ -45,7 +45,7 @@
 								:placeholder="$t('purchased.clickToSelectTime')"
 								:rules="[{ required: true, message: $t('purchased.procurementTimeCanNotBeEmpty') }]"
 								@click="route.query.processType == 10 || route.query.processType == 20 ? timePicker = false : timePicker = true"
-								required
+								:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 							/>
 							<van-popup v-model:show="timePicker" position="bottom">
 								<van-date-picker
@@ -100,14 +100,14 @@
 									:rules="[
 										{ required: true, message: $t('purchased.procurementProductCanNotBeEmpty') },
 									]"
-									required
+									:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 								/>
 								<van-field
 									v-model="formData.subscribeDetailList[index].count"
 									:label="$t('subscribe.quantity')"
 									:placeholder="$t('subscribe.pleaseEnterTheQuantity')"
 									:rules="[{ required: true, message: $t('subscribe.quantityCanNotBeEmpty') }]"
-									required
+									:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 									type="number"
 									:readonly="submitType === 'edit'"
 								/>
@@ -122,7 +122,7 @@
 									:readonly="submitType === 'edit'"
 									rows="3"
 									type="textarea"
-									required
+									:required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
 								/>
 							</van-cell-group>
 						</div>

+ 7 - 1
src/views/working/index.vue

@@ -43,7 +43,12 @@
     </div>
   </div>
 </template>
-<script setup>
+<script>
+ export default {
+    name:'working'
+ }
+</script>
+<script setup name="working">
 import { ref, reactive, getCurrentInstance, toRaw } from "vue";
 const proxy = getCurrentInstance().proxy;
 console.log(toRaw(proxy), "asss");
@@ -61,6 +66,7 @@ const getRouter = () => {
     
   });
 };
+
 const keyword = ref(null);
 const searchList = ref([]);
 const searchFn = (text) => {