Procházet zdrojové kódy

Merge branch 'dev0.3' of http://36.137.93.232:3000/hf/byte-sailing-new into dev0.3

cz před 1 rokem
rodič
revize
b2774e6ff6

+ 17 - 1
src/components/byForm/index.vue

@@ -24,7 +24,18 @@
               : '100%'
           "
           :class="i.type == 'json' ? (i.isHide ? 'by-form-json dn' : 'by-form-json') : i.isHide ? 'dn' : ''">
-          
+          <template #label>
+            <el-popover placement="top"  trigger="hover"  v-if="i.isTip">
+              <template #reference>
+                <span 
+                  style="color:red">
+                  {{ i.label }}{{i.isTip}}
+                </span>
+              </template>
+              <div v-html="i.tipHtml"></div>
+            </el-popover>
+            <span v-else> {{ i.label }}{{i.isTip}}</span>
+          </template>
           <el-input
             v-if="i.type == 'input'"
             v-model="formData[i.prop]"
@@ -227,6 +238,9 @@ defineProps({
     default: false,
   },
 });
+
+
+
 const formTableChange = (e, scope, column) => {
   if (column.fn) {
     column.fn(e, scope);
@@ -275,6 +289,8 @@ const emit = defineEmits(["update:modelValue"]);
 const formData = computed(() => {
   return proxy.modelValue;
 });
+
+
 const formDataReset = ref({ ...proxy.modelValue });
 const commonsEmit = (prop, item) => {
   if (item.type == "input" && item.itemType == "number") {

+ 264 - 9
src/components/process/ContractAlteration.vue

@@ -16,11 +16,17 @@
                     class="box-item"
                     effect="dark"
                     placement="top-start"
-                    :content="formOption.formDataCopy.sellCountryName + ' ' + formData.data.sellProvinceName + ' ' + formData.data.sellCityName"
+                    :content="formOption.formDataCopy.sellCountryName + ' ' + 
+                    formOption.formDataCopy.sellProvinceName + ' ' + 
+                    formOption.formDataCopy.sellCityName + ' ' + 
+                    formOption.formDataCopy.sellAddress"
                   >
                     <span 
-                      
-                      :style="formOption.formDataCopy.sellCountryName != formData.data.sellCountryName ? 'color:red' : ''">
+                      :style="formOption.formDataCopy.sellCountryName != formData.data.sellCountryName ||
+                      formOption.formDataCopy.sellProvinceName != formData.data.sellProvinceName ||
+                      formOption.formDataCopy.sellCityName != formData.data.sellCityName || 
+                      formOption.formDataCopy.sellAddress != formData.data.sellAddress
+                      ? 'color:red' : ''">
                       地址
                     </span>
                   </el-tooltip>
@@ -28,12 +34,14 @@
                 <el-input v-model="formData.data.sellCountryName" placeholder="请输入国家" />
               </el-form-item>
             </el-col>
-            <el-col :span="8">
+            <el-col :span="1"></el-col>
+            <el-col :span="7">
               <el-form-item label=" " prop="sellProvinceName">
                 <el-input v-model="formData.data.sellProvinceName" placeholder="请输入省/州" />
               </el-form-item>
             </el-col>
-            <el-col :span="8">
+            <el-col :span="1"></el-col>
+            <el-col :span="7">
               <el-form-item label=" " prop="sellCityName">
                 <el-input v-model="formData.data.sellCityName" placeholder="请输入城市" />
               </el-form-item>
@@ -49,6 +57,22 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="8">
               <el-form-item label="联系人" prop="sellContactName">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.sellContactName + ' ' +
+                    formOption.formDataCopy.sellContactNumber"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.sellContactName != formData.data.sellContactName ||
+                      formOption.formDataCopy.sellContactNumber != formData.data.sellContactNumber
+                      ? 'color:red' : ''">
+                      联系人
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input v-model="formData.data.sellContactName" placeholder="请输入联系人" />
               </el-form-item>
             </el-col>
@@ -71,6 +95,26 @@
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
                 <el-form-item label="地址" prop="countryId">
+                  <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.buyCountryName + ' ' + 
+                    formOption.formDataCopy.buyProvinceName + ' ' + 
+                    formOption.formDataCopy.sellCityName + ' ' + 
+                    formOption.formDataCopy.buyAddress"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.buyCountryId != formData.data.countryId ||
+                      formOption.formDataCopy.buyProvinceId != formData.data.buyProvinceId ||
+                      formOption.formDataCopy.buyCountryId != formData.data.buyCountryId || 
+                      formOption.formDataCopy.buyAddress != formData.data.buyAddress
+                      ? 'color:red' : ''">
+                      地址
+                    </span>
+                  </el-tooltip>
+                </template>
                   <el-select v-model="formData.data.countryId" placeholder="国家" filterable @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="formData.data.contractType == '2' ? item.chineseName : item.name" :value="item.id">
                     </el-option>
@@ -110,6 +154,22 @@
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="8">
                 <el-form-item label="联系人" prop="buyContactName">
+                  <template #label>
+                    <el-tooltip
+                      class="box-item"
+                      effect="dark"
+                      placement="top-start"
+                      :content="formOption.formDataCopy.buyContactName + ' ' +
+                      formOption.formDataCopy.buyContactNumber"
+                    >
+                      <span 
+                        :style="formOption.formDataCopy.buyContactName != formData.data.buyContactName ||
+                        formOption.formDataCopy.buyContactNumber != formData.data.buyContactNumber
+                        ? 'color:red' : ''">
+                        联系人
+                      </span>
+                    </el-tooltip>
+                  </template>
                   <el-autocomplete
                     v-model="formData.data.buyContactName"
                     :fetch-suggestions="querySearchPerson"
@@ -267,6 +327,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="4">
               <el-form-item label="币种" prop="currency">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.currencyLabel"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.currency != formData.data.currency
+                      ? 'color:red' : ''">
+                      币种
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-select v-model="formData.data.currency" placeholder="请选择币种" style="width: 100%">
                   <el-option v-for="item in accountCurrency" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
@@ -274,6 +348,20 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="合同总金额" prop="amount">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.amount"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.amount != formData.data.amount
+                      ? 'color:red' : ''">
+                      合同总金额
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input v-model="formData.data.amount" placeholder="合同总金额" disabled />
               </el-form-item>
             </el-col>
@@ -281,6 +369,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="7">
               <el-form-item label="付款方式" prop="paymentMethod">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.paymentMethodName"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.paymentMethod != formData.data.paymentMethod
+                      ? 'color:red' : ''">
+                      付款方式
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-select v-model="formData.data.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
                   <el-option v-for="item in fundsPaymentMethod" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
@@ -288,6 +390,20 @@
             </el-col>
             <el-col :span="7">
               <el-form-item label="预付比例 (%)" prop="advanceRatio">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.advanceRatio"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.advanceRatio != formData.data.advanceRatio
+                      ? 'color:red' : ''">
+                      预付比例 (%)
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input-number
                   onmousewheel="return false;"
                   v-model="formData.data.advanceRatio"
@@ -301,6 +417,20 @@
             </el-col>
             <el-col :span="7">
               <el-form-item label="收款账号" prop="shroffAccountId">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.shroffAccountName"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.shroffAccountId != formData.data.shroffAccountId
+                      ? 'color:red' : ''">
+                      收款账号
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-select v-model="formData.data.shroffAccountId" placeholder="请选择收款账号" style="width: 100%" @change="changeShroffAccount">
                   <el-option v-for="item in accountList" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
@@ -356,6 +486,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="7">
               <el-form-item label="贸易方式" prop="tradeMethods">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.tradeMethodsName"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.tradeMethods != formData.data.tradeMethods
+                      ? 'color:red' : ''">
+                      贸易方式
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-select v-model="formData.data.tradeMethods" placeholder="请选择贸易方式" style="width: 100%">
                   <el-option v-for="item in tradeMethods" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
@@ -365,6 +509,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="7">
               <el-form-item label="运输方式" prop="transportMethod">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.transportMethodName"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.transportMethod != formData.data.transportMethod
+                      ? 'color:red' : ''">
+                      贸易方式
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-select v-model="formData.data.transportMethod" placeholder="请选择运输方式" style="width: 100%">
                   <el-option v-for="item in shippingMethod" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
@@ -372,6 +530,20 @@
             </el-col>
             <el-col :span="7">
               <el-form-item label="运输说明" prop="transportRemark">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.transportRemark"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.transportRemark != formData.data.transportRemark
+                      ? 'color:red' : ''">
+                      运输说明
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input v-model="formData.data.transportRemark" placeholder="请输入运输说明" />
               </el-form-item>
             </el-col>
@@ -379,6 +551,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="14">
               <el-form-item label="付款条件" prop="remark">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.remark"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.remark != formData.data.remark
+                      ? 'color:red' : ''">
+                      付款条件
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input v-model="formData.data.remark" :rows="2" type="textarea" placeholder="请输入付款条件" />
               </el-form-item>
             </el-col>
@@ -386,6 +572,20 @@
           <el-row style="margin-top: 20px; width: 100%">
             <el-col :span="7">
               <el-form-item label="交货期限 (天)" prop="deliveryTime">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.deliveryTime"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.deliveryTime != formData.data.deliveryTime
+                      ? 'color:red' : ''">
+                      交货期限 (天)
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input-number
                   onmousewheel="return false;"
                   v-model="formData.data.deliveryTime"
@@ -398,6 +598,20 @@
             </el-col>
             <el-col :span="7">
               <el-form-item label="质保期 (天)" prop="warranty">
+                <template #label>
+                  <el-tooltip
+                    class="box-item"
+                    effect="dark"
+                    placement="top-start"
+                    :content="formOption.formDataCopy.warranty"
+                  >
+                    <span 
+                      :style="formOption.formDataCopy.warranty != formData.data.warranty
+                      ? 'color:red' : ''">
+                      交货期限 (天)
+                    </span>
+                  </el-tooltip>
+                </template>
                 <el-input-number
                   onmousewheel="return false;"
                   v-model="formData.data.warranty"
@@ -591,6 +805,8 @@ const formConfig = computed(() => {
       type: "slot",
       slotName: "commodity",
       label: "商品信息",
+      isTip:false,
+      tipHtml:'1'
     },
     {
       type: "slot",
@@ -614,6 +830,18 @@ const formConfig = computed(() => {
     },
   ];
 });
+
+const getDictName = (dictList, value) => {
+  let name = "";
+  dictList.forEach((item) => {
+    if (item.value == value) {
+      name = item.label;
+    }
+  });
+  console.log(value)
+  return name;
+};
+
 const rules = ref({
   contractType: [{ required: true, message: "请选择合同类型", trigger: "change" }],
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
@@ -827,6 +1055,37 @@ const getDecisionAids = () => {
   if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
     data.productIdList = formData.data.contractProductList.map((item) => item.productId);
   }
+  proxy.post("/contract/detail", {
+    id:formData.data.oldContractId
+  }).then((res) => {
+    formOption.formDataCopy = res;
+    //比对formData.data.contractProductList和res.contractProductList 这两个数组是否相同
+    if(JSON.stringify(formData.data.contractProductList) != JSON.stringify(res.contractProductList)) {
+      formConfig.value.push({
+          type: "input",
+          slotName: "shipment",
+          label: "出货11111计划",
+ 
+      })
+    }
+    
+    formOption.formDataCopy.transportMethodName = shippingMethod.value.find((item) => {
+      return item.value === res.transportMethod;
+    }).label;
+    formOption.formDataCopy.tradeMethodsName = tradeMethods.value.find((item) => {
+      return item.value === res.tradeMethods;
+    }).label;
+    formOption.formDataCopy.shroffAccountName = accountList.value.find((item) => {
+      return item.value === res.shroffAccountId;
+    }).label;
+    formOption.formDataCopy.paymentMethodName = fundsPaymentMethod.value.find((item) => {
+      return item.value === res.paymentMethod;
+    }).label;
+    formOption.formDataCopy.currencyLabel = accountCurrency.value.find((item) => {
+      return item.value === res.currency;
+    }).label;
+    console.log(formOption.formDataCopy.currencyLabel) 
+  })
   proxy.post("/contract/decisionAid", data).then((res) => {
     if (res.lastContractList && res.lastContractList.length > 0) {
       auxiliaryData.value[0].data = res.lastContractList.map((item) => {
@@ -1315,8 +1574,6 @@ onMounted(() => {
           };
         });
       }
-      formOption.formDataCopy = {...formData.data}
-      console.log(formOption.formDataCopy,123123)
     });
   } else if (props.queryData.contractId) {
     proxy.post("/contract/detail", { id: props.queryData.contractId }).then((res) => {
@@ -1372,8 +1629,6 @@ onMounted(() => {
         });
       }
     });
-    formOption.formDataCopy = {...formData.data}
-    console.log(formOption.formDataCopy,123123)
   }
 
 });

+ 15 - 16
src/views/dataBoard/board/salesAnalysis/index.vue

@@ -9,7 +9,7 @@
             placeholder="月份"
             @change="onQuery"
           />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="">
           <el-radio-group v-model="queryForm.bb" size="large" @change="onQuery">
             <el-radio-button label="本日" />
@@ -18,7 +18,7 @@
             <el-radio-button label="今年" />
             <el-radio-button label="其他" />
           </el-radio-group>
-        </el-form-item> -->
+        </el-form-item>
         <el-form-item>
           <el-date-picker
             v-model="queryForm.timeArr"
@@ -277,14 +277,13 @@ const optionOne = reactive({
     },
     series: [
       {
-        name: "销售分析",
-        type: "pie",
-        radius: ["30%", "70%"],
-        avoidLabelOverlap: false,
+        name: 'Area Mode',
+        type: 'pie',
+        radius: [20, 140],
+        center: ['50%', '50%'],
+        roseType: 'area',
         itemStyle: {
-          borderRadius: 10,
-          borderColor: "#fff",
-          borderWidth: 2,
+          borderRadius: 5
         },
         label: {
           show: false,
@@ -510,10 +509,10 @@ const getData = () => {
   });
   proxy.post("/contract/countrySalesStatistics", queryForm).then((res) => {
     sourceList.value.scatterData = res;
-    optionOne.data.series[0].data = res.map((x) => ({
-      value: x.amount,
-      name: x.countryName,
-    }));
+    // optionOne.data.series[0].data = res.map((x) => ({
+    //   value: x.amount,
+    //   name: x.countryName,
+    // }));
     myChart.setOption(optionOne.data);
     setTimeout(() => {
       scatterLoading.value = false;
@@ -523,9 +522,9 @@ const getData = () => {
   proxy.post("/contract/customSalesStatistics", queryForm).then((res) => {
     sourceList.value.salesData = res;
     const option = { ...optionTwo };
-    option.data.xAxis[0].data = res.map((x) => x.corporationName);
-    option.data.series[0].data = res.map((x) => x.amount);
-    option.data.series[0].name = "销售额(¥)";
+    // option.data.xAxis[0].data = res.map((x) => x.corporationName);
+    // option.data.series[0].data = res.map((x) => x.amount);
+    // option.data.series[0].name = "销售额(¥)";
     myChartOne.setOption(option.data);
     setTimeout(() => {
       salesLoading.value = false;

+ 14 - 1
src/views/index.vue

@@ -18,7 +18,7 @@
 					</div>
 				</li>
 				<li class="theme3">
-					<div class="num">3</div>
+					<div class="num">{{ pushInfo.total }}</div>
 					<div class="label">未读消息</div>
 					<div class="icon-box">
 						<i class="icon iconfont icon-iconm_unread"></i>
@@ -153,6 +153,10 @@ const pushProcessApproval = (row) => {
 	
 }
 const { proxy } = getCurrentInstance();
+const pushInfo = ref({
+	total:0,
+	rows:[]
+})
 const getData = (() => {
 	proxy.post('flowExample/getToBeProcessedPage',{
 		pageNum:1,
@@ -174,6 +178,15 @@ const getData = (() => {
 	}).then(res=>{
 		sendMegData.value = res
 	})
+	proxy.post('pushInfo/page',{
+		pageNum:1,
+		pageSize:3,
+		pushRead:0,
+		
+	}).then(res=>{
+		pushInfo.value = res
+	})
+	
 })
 const toUrl = (name,type) => {
 	//获取name为name的路由的基础信息

+ 3 - 3
src/views/process/dealWith/index.vue

@@ -51,7 +51,7 @@
 	</div>
 </template>
     
-  <script setup >
+  <script setup name="DealWith">
 /* eslint-disable vue/no-unused-components */
 import { ElMessage, ElMessageBox } from 'element-plus'
 import byTable from '@/components/byTable/index'
@@ -62,7 +62,7 @@ const submitLoading = ref(false)
 const dictCommonModal = ref(false)
 const sourceList = ref({
 	data: [],
-	pagination: {
+	pagination: { 
 		total: 3,
 		pageNum: 1,
 		pageSize: 10,
@@ -70,7 +70,7 @@ const sourceList = ref({
 	},
 })
 let dialogVisible = ref(false)
-let roomDialogVisible = ref(false)
+let roomDialogVisible = ref(false)                                                                        
 let modalType = ref('add')
 let rules = ref({
 	classifyName: [