cz 1 tahun lalu
induk
melakukan
7d3db99ca4

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

@@ -3,7 +3,7 @@
     <el-form :model="formData" :label-width="formOption.labelWidth || '100px'" :inline="formOption.inline || false" :rules="rules"
              :labelPosition="formOption.labelPosition || 'right'" ref="byForm" :disabled="formOption.disabled || false">
       <template v-for="i in formConfig" :key="i.model">
-        <el-form-item :label="i.label" :prop="i.prop" v-if="i.isShow || i.isShow == undefined" :style="
+        <el-form-item :label="i.label" :prop="i.prop" v-if="(Object.keys(i).length>0)&& (i.isShow || i.isShow == undefined)" :style="
             (i.type == 'title'||i.type == 'title1')
               ? 'width:100%'
               : i.itemWidth

+ 4 - 2
src/components/byTable/index.vue

@@ -55,7 +55,7 @@
             {{ item.text }}
           </el-button>
         </div>
-        <div class="by-dropdown" v-for="(i, index) in selectConfigCopy" :key="i.prop" style="margin-right: 10px">
+        <div class="by-dropdown" v-for="(i, index) in selectConfigCopy" :key="i.prop">
           <div v-if="i.type" class="selectTime" style="display:flex;align-items:center">
             <span style="font-size: 14px;height:32px;margin-right:15px">{{i.label || ''}}</span>
             <el-date-picker v-model="pagination[i.prop]" :type="i.itemType?i.itemType:'date'" size="small" :placeholder="i.placeholder"
@@ -85,7 +85,7 @@
         </div>
       </div>
 
-      <div style="display: flex;align-items:center">
+      <div style="display: flex;align-items:center;min-width:240px">
         <el-input :placeholder="$t('common.pleaseEnterKeywords')" style="font-size: 14px" size="mini" v-model="pagination.keyword"
                   @keyup.enter="searchFn">
         </el-input>
@@ -802,6 +802,8 @@ export default defineComponent({
   display: flex;
   justify-content: space-between;
   margin-bottom: 10px;
+  // overflow: hidden;
+  // overflow-x: auto;
   .more-icon {
     float: right;
     cursor: pointer;

+ 32 - 1
src/components/process/SF/Contract.vue

@@ -1627,7 +1627,7 @@ const getFileData = () => {
     });
 };
 const getPriceSheetData = (id) => {
-  proxy.post("/extQuotation/detail", { id }).then((res) => {
+  proxy.post("/extQuotation/detail", { id }).then(async (res) => {
     formData.data = res;
     formData.data = {
       templateContent: "",
@@ -1672,6 +1672,37 @@ const getPriceSheetData = (id) => {
     }));
     changeProductPrice();
     getFileData();
+    let productIds = formData.data.contractProductList.map((x) => x.productId);
+    const productAllFile = await proxy.getFileData({
+      businessIdList: productIds,
+      getAll: true,
+    });
+    for (let i = 0; i < formData.data.contractProductList.length; i++) {
+      const ele = formData.data.contractProductList[i];
+      for (const key in productAllFile) {
+        if (
+          ele.productId == key &&
+          productAllFile[ele.productId] &&
+          productAllFile[ele.productId].length > 0
+        ) {
+          ele.productFile = productAllFile[ele.productId].filter(
+            (x) => x.businessType == "0"
+          );
+          if (ele.productFile && ele.productFile.length > 0) {
+            ele.fileUrl = ele.productFile[0].fileUrl;
+          }
+          ele.fileListOne = productAllFile[ele.productId].filter(
+            (x) => x.businessType == "2"
+          );
+          if (ele.fileListOne && ele.fileListOne.length > 0) {
+            ele.isShowProductFile = true;
+          } else {
+            ele.isShowProductFile = false;
+          }
+          break;
+        }
+      }
+    }
     formData.data.countryId = res.buyCountryId;
     formData.data.provinceId = res.buyProvinceId;
     formData.data.cityId = res.buyCityId;

+ 11 - 3
src/views/EHSD/procurement/purchasedEHSD/index.vue

@@ -22,6 +22,13 @@
           <span>{{ moneyFormat(item.sumPayMoney, 2) }}</span>
         </div>
       </template>
+
+      <template #payStatus="{ item }">
+        <div style="width:100%">
+          <span :class="{'tag-active':item.payStatus==20,'tag-active-1':item.payStatus==10}">{{dictValueLabel(item.payStatus, payStatus)}}</span>
+        </div>
+      </template>
+
     </byTable>
     <el-dialog title="打印" v-if="openPdf" v-model="openPdf" width="920px">
       <PurchasePDF :rowData="rowData"></PurchasePDF>
@@ -196,11 +203,12 @@ const config = computed(() => {
       attrs: {
         label: "付款状态",
         prop: "payStatus",
+        slot: "payStatus",
         width: 140,
       },
-      render(type) {
-        return proxy.dictValueLabel(type, payStatus.value);
-      },
+      // render(type) {
+      //   return proxy.dictValueLabel(type, payStatus.value);
+      // },
     },
     {
       attrs: {

+ 30 - 14
src/views/EHSD/saleContract/contractEHSD/index.vue

@@ -209,7 +209,7 @@
       </template>
     </el-dialog>
 
-    <el-dialog :title="'下发生产'" v-model="productionDialog" width="700px" destroy-on-close>
+    <el-dialog :title="'生产'" v-model="productionDialog" width="700px" destroy-on-close>
       <byForm :formConfig="productionFormConfig" :formOption="formOption" v-model="formData.data" :rules="productionRules" ref="productionFormDom"
               v-loading="formLoading">
         <template #companyName>
@@ -355,6 +355,14 @@ const selectConfig = computed(() => {
       placeholderOne: "结束日期",
       propOne: "endTime",
     },
+    {
+      type: "time",
+      label: "交期",
+      placeholder: "开始日期",
+      prop: "deliveryTimeSta",
+      placeholderOne: "结束日期",
+      propOne: "deliveryTimeEnd",
+    },
   ];
 });
 const headerData = ref({});
@@ -445,6 +453,13 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "交期",
+        prop: "deliveryTime",
+        width: 160,
+      },
+    },
+    {
+      attrs: {
         label: "下发生产时间",
         prop: "orderDistributeTime",
         width: 160,
@@ -573,6 +588,19 @@ const config = computed(() => {
       },
       renderHTML(row) {
         return [
+          row.status == 30 && row.orderDistributeStatus != 1
+            ? {
+                attrs: {
+                  label: "生产",
+                  type: "danger",
+                  text: true,
+                },
+                el: "button",
+                click() {
+                  clickDistributeProduction(row);
+                },
+              }
+            : {},
           // {
           //   attrs: {
           //     label: "交接单",
@@ -597,19 +625,7 @@ const config = computed(() => {
                 },
               }
             : {},
-          row.status == 30 && row.orderDistributeStatus != 1
-            ? {
-                attrs: {
-                  label: "下发生产",
-                  type: "primary",
-                  text: true,
-                },
-                el: "button",
-                click() {
-                  clickDistributeProduction(row);
-                },
-              }
-            : {},
+
           row.status == 30
             ? {
                 attrs: {

+ 10 - 3
src/views/EHSD/saleContract/dailyReport/index.vue

@@ -21,7 +21,6 @@
         <el-form-item>
           <el-button type="primary" @click="onQuery" class="query">搜索</el-button>
           <el-button @click="onReset">重置</el-button>
-          <!-- <el-button @click="aa">定位到今日</el-button> -->
           <el-button type="primary" @click="exportExcel">导出Excel</el-button>
 
         </el-form-item>
@@ -120,6 +119,7 @@ import { getMonthBetween } from "@/utils/date.js";
 import moment from "moment";
 import FileSaver from "file-saver";
 import * as XLSX from "xlsx";
+import { nextTick } from "vue";
 const { proxy } = getCurrentInstance();
 const tableHeight = ref(0);
 const getTableHeight = () => {
@@ -173,6 +173,9 @@ const onQuery = () => {
       sourceList.value.pagination.beginTime.slice(0, 10),
       sourceList.value.pagination.endTime.slice(0, 10)
     );
+    nextTick(() => {
+      setTimeout(() => scrollIntoEle(), 1000);
+    });
   }
   getList();
 };
@@ -215,10 +218,14 @@ const disabledFn = (date) => {
   }
 };
 
-const aa = () => {
+const scrollIntoEle = () => {
   let eles = document.querySelectorAll(".isToday");
   if (eles && eles[0]) {
-    eles[0].scrollIntoView();
+    eles[0].scrollIntoView({
+      // behavior: "smooth",
+      block: "start",
+      inline: "start",
+    });
   }
 };
 

+ 46 - 7
src/views/MES/productionOrder/index.vue

@@ -11,6 +11,13 @@
             {{item.code}}
           </div>
         </template>
+
+        <template #isOverdue="{item}">
+          <div style="width: 100%" :style="'color: ' + (item.isOverdue=='1'?'red':'')">
+            {{dictValueLabel(item.isOverdue,isOverdueData)}}
+          </div>
+        </template>
+
         <template #prodTag="{ item }">
           <div style="width: 100%">
             <!-- <el-icon :size="16" style="cursor:pointer;margin-right: 5px;position:relative;top:5px" color="#409EFF" @click="handleEditTag(item)">
@@ -247,6 +254,7 @@ const sourceList = ref({
     beginTime: "",
     endTime: "",
     companyId: "",
+    isOverdue: "",
   },
 });
 const treeData = ref([]);
@@ -273,21 +281,38 @@ const statusData = ref([
     value: "2",
   },
 ]);
-const selectConfig = computed(() => [
+
+const isOverdueData = ref([
   {
-    label: "生产公司",
-    prop: "companyId",
-    data: companyData.value,
-    fn: () => {
-      getRightData();
-    },
+    label: "",
+    value: "1",
+  },
+  {
+    label: "否",
+    value: "0",
   },
+]);
+
+const selectConfig = computed(() => [
+  // {
+  //   label: "生产公司",
+  //   prop: "companyId",
+  //   data: companyData.value,
+  //   fn: () => {
+  //     getRightData();
+  //   },
+  // },
   {
     label: "生产状态",
     prop: "produceStatus",
     data: statusData.value,
   },
   {
+    label: "是否逾期",
+    prop: "isOverdue",
+    data: isOverdueData.value,
+  },
+  {
     type: "time",
     label: "交期",
     placeholder: "开始日期",
@@ -353,6 +378,20 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "完工时间",
+        prop: "finishTime",
+        width: 160,
+      },
+    },
+    {
+      attrs: {
+        label: "是否逾期",
+        slot: "isOverdue",
+        width: 80,
+      },
+    },
+    {
+      attrs: {
         label: "生产指示",
         slot: "prodTag",
         "min-width": 220,

+ 55 - 48
src/views/finance/fundManage/flow/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="pageIndexClass">
-    <div style="background: #fff; padding: 15px 15px 0 15px">
+    <!-- <div style="background: #fff; padding: 15px 15px 0 15px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item label="">
           <el-button type="primary" @click="openModal('add')">添加流水</el-button>
@@ -38,10 +38,13 @@
           </div>
         </div>
       </div>
-    </div>
+    </div> -->
     <div>
       <byTable :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading" :selectConfig="selectConfig"
-               highlight-current-row :action-list="[]" @moreSearch="moreSearch" @get-list="getList">
+               highlight-current-row :action-list="[{
+            text: '添加流水',
+            action: () => openModal('add'),
+          }]" @moreSearch="moreSearch" @get-list="getList">
         <!-- {
             text: '内部转账',
             action: () => openModalTwo('add'),
@@ -78,32 +81,21 @@
       </byTable>
     </div>
 
-    <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="1000" v-loading="loadingDialog">
       <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit">
-        <template #transactionTime>
-          <div>
-            <el-date-picker v-model="formData.data.transactionTime" type="datetime" placeholder="请选择交易时间" value-format="YYYY-MM-DD HH:mm:ss" />
-          </div>
-        </template>
+
         <template #money>
           <div style="width: 100%">
-            <el-row :gutter="10">
-              <el-col :span="6">
-                <el-form-item prop="status">
-                  <el-select v-model="formData.data.status" placeholder="请选择" style="width: 100%" @change="changeStatus()">
-                    <el-option v-for="item in status" :key="item.value" :label="item.label" :value="item.value" />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="6">
-                <el-form-item prop="currency">
+            <el-row>
+              <el-col :span="10">
+                <el-form-item prop="currency" class="margin-b-0">
                   <el-select v-model="formData.data.currency" placeholder="请选择" style="width: 100%" @change="changeAmount">
                     <el-option v-for="item in accountCurrency" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <el-form-item prop="amount">
+              <el-col :span="14">
+                <el-form-item prop="amount" class="margin-b-0">
                   <el-input-number onmousewheel="return false;" v-model="formData.data.amount" placeholder="请输入金额" style="width: 100%" :precision="2"
                                    :controls="false" :min="0" @change="changeAmount" />
                 </el-form-item>
@@ -113,26 +105,24 @@
         </template>
         <template #amountCny>
           <div style="width: 100%">
-            <el-row :gutter="10">
-              <el-col :span="12">
-                <el-form-item prop="amountCny">
+            <el-row :gutter="10" style="width:100%">
+              <el-col :span="14">
+                <el-form-item prop="amountCny" class="margin-b-0">
                   <el-input-number onmousewheel="return false;" v-model="formData.data.amountCny" placeholder="请输入汇算人民币金额" style="width: 100%"
                                    :precision="2" :controls="false" :min="0" />
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <span v-if="formData.data.amount && formData.data.amountCny">汇率是:{{
+              <span v-if="formData.data.amount && formData.data.amountCny">汇率是:{{
                     parseFloat(
                       formData.data.amountCny / formData.data.amount
                     ).toFixed(2)
                   }}</span>
-              </el-col>
             </el-row>
           </div>
         </template>
         <template #received>
-          <div>
-            <el-form-item prop="received">
+          <div style="width: 100%">
+            <el-form-item prop="received" class="margin-b-0">
               <el-radio-group v-model="formData.data.received">
                 <el-radio v-for="item in received" :key="item.value" :label="item.value" border>{{ item.label }}</el-radio>
               </el-radio-group>
@@ -206,7 +196,7 @@
         </template>
         <template #money>
           <div style="width: 100%">
-            <el-row :gutter="10">
+            <el-row :gutter="24">
               <el-col :span="6">
                 <el-form-item prop="status">
                   <el-select v-model="formData.settleData.status" placeholder="请选择" style="width: 100%" @change="changeStatus()" disabled>
@@ -366,7 +356,7 @@ const config = computed(() => {
       attrs: {
         label: "归属公司",
         prop: "corporationName",
-        width: 160,
+        width: 170,
       },
     },
     {
@@ -578,46 +568,62 @@ const formData = reactive({
 const formConfig = computed(() => {
   return [
     {
-      label: "账户信息",
+      type: "title1",
+      title: "基本信息",
     },
     {
       type: "select",
       prop: "accountManagementId",
       label: "选择账户",
       data: accountList.value,
+      itemWidth: 50,
     },
     {
-      label: "交易信息",
-    },
-    {
-      type: "slot",
+      type: "date",
       prop: "transactionTime",
-      slotName: "transactionTime",
+      itemType: "datetime",
       label: "交易时间",
+      itemWidth: 50,
     },
     {
+      type: "select",
+      prop: "status",
+      label: "交易类型",
+      data: status.value,
+      fn: () => {
+        changeStatus();
+      },
+      itemWidth: 50.01,
+    },
+    formData.data.status == "10"
+      ? {
+          type: "slot",
+          prop: "received",
+          slotName: "received",
+          label: "合同到账",
+          itemWidth: 49,
+        }
+      : {},
+    {
       type: "slot",
       prop: "money",
       slotName: "money",
       label: "交易金额",
+      itemWidth: 50,
     },
     {
       type: "slot",
       prop: "amountCny",
       slotName: "amountCny",
-      label: "汇算人民币金额",
+      label: "汇算人民币",
+      itemWidth: 50,
     },
-    formData.data.status == "10"
-      ? {
-          type: "slot",
-          prop: "received",
-          slotName: "received",
-          label: "合同到账",
-        }
-      : {},
+
     {
-      label: "对方信息",
+      type: "title1",
+      title: "对方信息",
     },
+
     {
       type: "input",
       prop: "name",
@@ -637,7 +643,8 @@ const formConfig = computed(() => {
       itemType: "text",
     },
     {
-      label: "其他信息",
+      type: "title1",
+      title: "其他信息",
     },
     {
       type: "input",

+ 3 - 3
src/views/index.vue

@@ -103,9 +103,9 @@
         <el-card style="width:32%" v-if="useUserStore().user.companyId =='100'">
           <TitleInfo :content="'待认领'"></TitleInfo>
           <el-table :data="allData[4].rows" style="width: 100%" :height="tableHeight">
-            <el-table-column prop="date" label="Date" />
-            <el-table-column prop="name" label="Name" />
-            <el-table-column prop="address" label="Address" />
+            <el-table-column prop="accountManagementName" label="账户名称" />
+            <el-table-column prop="amount" label="到账金额" width="100" />
+            <el-table-column prop="transactionTime" label="到账时间" width="150" />
           </el-table>
 
         </el-card>