Browse Source

提交变更列表页面

ljb 11 months ago
parent
commit
72f594d3ef

+ 30 - 0
src/api/projectManage/change.js

@@ -0,0 +1,30 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/kd-scientific/xm-bgrz/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/kd-scientific/xm-bgrz/save',
+    method: 'post',
+    data: row
+  })
+}
+
+
+export const update = (row) => {
+  return request({
+    url: '/api/kd-scientific/xm-bgrz/update',
+    method: 'post',
+    data: row
+  })
+}

+ 86 - 0
src/option/projectManage/change.js

@@ -0,0 +1,86 @@
+export default {
+  height: 'auto',
+  calcHeight: 30,
+  tip: false,
+  searchShow: true,
+  searchMenuSpan: 6,
+  border: true,
+  index: true,
+  addBtn: false,
+  menu: false,
+  selection: false,
+  searchLabelWidth: 140,
+  labelWidth: 140,
+  menuWidth: 220,
+  dialogClickModal: false,
+  dialogWidth: 760,
+  dialogType: "drawer",
+  column: [
+    {
+      label: '研发项目名称',
+      prop: 'yfxmmc',
+      type: 'input',
+      search: true,
+      minWidth: 240,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '研发项目编号',
+      prop: 'yfzcbh',
+      type: 'input',
+      minWidth: 160,
+      align: 'center',
+      search: true,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '项目申请单位',
+      prop: 'xmsqdw',
+      type: 'select',
+      minWidth: 140,
+      align: 'center',
+      search: true,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '变更类型',
+      prop: 'zdmc',
+      width: 140,
+      align: 'center',
+      type: 'select',
+      dicUrl: '/api/kd-system/dict-biz/dictionary?code=xm_biangeng_field',
+      props: {
+        label: 'dictValue',
+        value: 'dictKey',
+      },
+      search: true,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '变更前',
+      prop: 'bgqdz',
+      type: 'input',
+      minWidth: 160,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '变更后',
+      prop: 'bghdz',
+      type: 'input',
+      minWidth: 160,
+      showOverflowTooltip: true,
+    },
+    {
+      label: '变更生效时间',
+      prop: 'bzsxssj',
+      width: 160,
+      search: true,
+      props: {
+        label: 'dictValue',
+        value: 'dictKey',
+      },
+      align: 'center',
+      showOverflowTooltip: true,
+    },
+  ],
+};

+ 71 - 5
src/views/project-manage/change.vue

@@ -1,9 +1,75 @@
 <template>
-  <div>项目变更</div>
+  <basic-container>
+    <avue-crud
+      v-bind="bindVal"
+      v-on="onEvent"
+      v-model="form"
+      :page.sync="page"
+      :before-open="handleBeforeOpen"
+      :permission="permissionList"
+    >
+      <template slot="menuLeft">
+        <el-button type="primary" size="small" icon="el-icon-position">
+          发起变更
+        </el-button>
+        <el-button
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-download"
+          @click="handleExport"
+        >
+          导出
+        </el-button>
+        <print-table-btn @click="printTable" />
+      </template>
+      
+    </avue-crud>
+
+    <WideTablePrinter
+      ref="printWideTable"
+      :columns="wideTableColumns"
+      :data="data"
+      :print-title="printTitle"
+      :rows-per-page="30"
+      :default-landscape="true"
+    />
+  </basic-container>
 </template>
 
 <script>
-export default {
-  
-}
-</script>
+import {exportBloByPost} from "@/api/common";
+import {getToken} from "@/util/auth";
+import {downloadXls} from "@/util/util";
+
+
+export default window.$crudCommon({
+  data() {
+    return {
+      wideTableColumns: [],
+      printTitle: "",
+    };
+  },
+  methods: {
+    handleExport() {
+      exportBloByPost(`/api/kd-scientific/xm-bgrz/export?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
+        downloadXls(res.data, `项目变更列表.xlsx`);
+      });
+    },
+    /**
+     * 打印表格
+     * @param isLandscape 是否横向打印
+     */
+    printTable(isLandscape) {
+      this.wideTableColumns = this.$refs.crud.columnOption;
+      this.printTitle = `项目变更列表`;
+      this.$nextTick(() => {
+        this.$refs.printWideTable.printTable(isLandscape);
+      })
+    },
+  },
+}, {
+  // 模块路径
+  name: 'projectManage/change',
+});
+</script>

+ 8 - 7
src/views/project-manage/components/apply-form.vue

@@ -118,7 +118,7 @@
           <td class="doc-label">其中</td>
           <td class="doc-input">
             <div class="year-list">
-              <div class="year-list-item" v-for="year of yearList" :key="year">
+              <div class="year-list-item" v-for="year of yearList" :key="year" :style="{ height: yearList.length == 1 ? '51px' : '32px', lineHeight: yearList.length == 1 ? '51px' : '32px' }">
                 <div class="year" >{{ year }}</div>
                 <div class="year-input">
                   <input v-model="formData[year]" type="number" />
@@ -257,7 +257,9 @@ export default {
     },
     getXmDateRange() {
       if (this.formData.xmkssj && this.formData.xmjssj) {
-        return `${this.formData.xmkssj}至${this.formData.xmjssj}`;
+        let xmkssj = moment(this.formData.xmkssj).format('yyyy年MM月DD日');
+        let xmjssj = moment(this.formData.xmjssj).format('yyyy年MM月DD日')
+        return `${xmkssj}至${xmjssj}`;
       }
       return `年 月 日至 年 月 日`;
     },
@@ -303,6 +305,7 @@ export default {
       });
     },
     validForm() {
+      console.log(!this.formData.lxpw)
       let errorText = '';
       if (!this.formData.xmmc) {
         errorText = '请输入项目名称';
@@ -314,9 +317,9 @@ export default {
         errorText = '请选择项目开始时间';
       } else if (!this.formData.xmjssj) {
         errorText = '请选择项目结束时间';
-      } else if (!this.formData.lxpw) {
+      } else if (!this.formData.lxpw.length) {
         errorText = '请上传立项批文!';
-      } else if (!this.formData.lxbg) {
+      } else if (!this.formData.lxbg.length) {
         errorText = '请上传立项报告!';
       } else {
         let yearAmount = 0;
@@ -338,14 +341,12 @@ export default {
         return;
       }
 
-      let params = { ...this.formData };
+      let params = JSON.parse(JSON.stringify(this.formData));
       params.yqcgxs = params.yqcgxs ? params.yqcgxs.join(',') : '';
       params.xmjsjjmb = params.xmjsjjmb ? params.xmjsjjmb.join(',') : '';
       params.lxbg = params.lxbg ? params.lxbg.join(',') : '';
       params.lxpw = params.lxpw ? params.lxpw.join(',') : '';
       params.qtzl = params.qtzl ? params.qtzl.join(',') : '';
-      params.xmkssj = moment(params.xmkssj).format('yyyy年MM月DD日');
-      params.xmjssj = moment(params.xmjssj).format('yyyy年MM月DD日');
       let yearAmountList = [];
       this.yearList.forEach(year => {
         yearAmountList.push({ year: Number(year), amount: params[year] || 0 });

+ 0 - 0
src/views/project-manage/components/change-form.vue