Browse Source

代码提交:
1020自检类型管理及自检

sunruiqi 2 năm trước cách đây
mục cha
commit
a964dd1e3c

+ 7 - 0
src/api/sys/ProofreadInfoService.js

@@ -15,4 +15,11 @@ export default class ProofreadInfoService {
       params: {id: id}
     })
   }
+  list (type) {
+    return request({
+      url: '/proofread/info/list',
+      method: 'get',
+      params: {type: type}
+    })
+  }
 }

+ 5 - 3
src/views/modules/program/configuration/proofreadType/TypeForm.vue

@@ -57,7 +57,8 @@
         loading: false,
         inputForm: {
           name: '',
-          parentId: ''
+          parentId: '',
+          type: ''
         }
       }
     },
@@ -73,8 +74,8 @@
         this.method = method
         this.inputForm = {
           name: '',
-          no: '',
-          parentId: ''
+          parentId: '',
+          type: ''
         }
         if (method === 'add') {
           this.title = `新建自检类型`
@@ -107,6 +108,7 @@
         this.$refs['inputForm'].validate((valid) => {
           if (valid) {
             this.loading = true
+            this.inputForm.type = '1'
             this.proofreadTypeService.save(this.inputForm).then(({data}) => {
               this.close()
               this.$message.success(data)

+ 3 - 1
src/views/modules/program/configuration/proofreadType/TypeList.vue

@@ -62,7 +62,8 @@
     data () {
       return {
         searchForm: {
-          name: ''
+          name: '',
+          type: ''
         },
         dataList: [],
         tablePage: {
@@ -106,6 +107,7 @@
       // 获取数据列表
       refreshList () {
         this.loading = true
+        this.searchForm.type = '1'
         this.proofreadTypeService.list({...this.searchForm}).then(({data}) => {
           this.dataList = data
           this.loading = false

+ 365 - 39
src/views/modules/program/registered/ProofreadForm.vue

@@ -11,7 +11,7 @@
       <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method==='view'"
                label-width="220px" @submit.native.prevent>
 
-        <el-row  :gutter="15">
+        <el-row :gutter="15">
           <el-col :span="24">
             <el-form-item label="项目名称" prop="projectName">
               <el-input :disabled="true" v-model="inputForm.projectName"></el-input>
@@ -37,7 +37,6 @@
               <el-date-picker
                 v-model="inputForm.processDate"
                 type="date"
-                value-format="yyyy-MM-dd"
                 :disabled="true"
                 style="width: 100%"
                 placeholder="选择日期">
@@ -46,39 +45,296 @@
           </el-col>
         </el-row>
 
-        <el-divider content-position="left"><i class="el-icon-document"></i> 项目基本情况信息</el-divider>
+        <el-divider content-position="left"><i class="el-icon-document"></i>明细表</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor1010"
+            class="vxe-table-element"
+            :data="inputForm.detailFor1010"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估说明</el-divider>
+        <el-row></el-row>
+        <el-divider content-position="left">封面至评估范围</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2010"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">资产核实情况总体说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2020"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">资产基础法/成本法评估技术说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2030"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">评估结论及分析</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2040"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">关于评估有关事项的说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2050"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">其他问题</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2060"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估报告</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor30"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
 
-        <el-form-item label="保留意见" prop="reservations">
-          <el-input v-model="inputForm.reservations"
-                    type="textarea"
-                    :rows="5"
-                    maxlength="2000"
-                    placeholder="请输入保留意见"
-                    show-word-limit>
-          </el-input>
-        </el-form-item>
+        <el-divider content-position="left"><i class="el-icon-document"></i>保留意见</el-divider>
+        <el-input v-model="inputForm.reservations"
+                  type="textarea"
+                  :rows="5"
+                  maxlength="2000"
+                  placeholder="请输入保留意见"
+                  show-word-limit>
+        </el-input>
 
-        <el-form-item label="未修改意见" prop="unmodifiedComments">
-          <el-input v-model="inputForm.unmodifiedComments"
-                    type="textarea"
-                    :rows="5"
-                    maxlength="2000"
-                    placeholder="请输入未修改意见"
-                    show-word-limit>
-          </el-input>
-        </el-form-item>
+        <el-divider content-position="left"><i class="el-icon-document"></i>未修改意见</el-divider>
+        <el-input v-model="inputForm.unmodifiedComments"
+                  type="textarea"
+                  :rows="5"
+                  maxlength="2000"
+                  placeholder="请输入未修改意见"
+                  show-word-limit>
+        </el-input>
 
       </el-form>
+
       <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-    </span>
+        <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
+        <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+      </span>
+
     </el-dialog>
   </div>
 </template>
 
 <script>
   import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
+  import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
   import UserService from '@/api/sys/UserService'
   export default {
@@ -97,17 +353,28 @@
           processUserName: '',
           processDate: '',
           reservations: '',
-          unmodifiedComments: ''
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
         }
       }
     },
     proofreadInfoService: null,
-    ProgramProjectListInfoService: null,
+    proofreadTypeService: null,
+    programProjectListInfoService: null,
     UserService: null,
     created () {
       this.proofreadInfoService = new ProofreadInfoService()
       this.programProjectListInfoService = new ProgramProjectListInfoService()
       this.userService = new UserService()
+      this.proofreadTypeService = new ProofreadTypeService()
     },
     components: {
     },
@@ -130,22 +397,19 @@
           processUserName: '',
           processDate: '',
           reservations: '',
-          unmodifiedComments: ''
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
         }
         this.visible = true
         this.loading = false
-        // 初始化
-        this.programProjectListInfoService.queryById(id).then(({data}) => {
-          this.inputForm.projectId = data.id
-          this.inputForm.projectName = data.name
-          this.inputForm.assessmentDate = data.assessmentDate
-          this.userService.queryById(data.projectManager).then(({data}) => {
-            this.inputForm.projectManagerName = data.name
-          })
-        })
-        this.inputForm.processUserId = this.userId
-        this.inputForm.processUserName = this.name
-        this.inputForm.processDate = new Date()
         this.$nextTick(() => {
           this.loading = true
           this.proofreadInfoService.findById(id).then(({data}) => {
@@ -153,6 +417,22 @@
               this.$refs.inputForm.resetFields()
               this.inputForm = this.recover(this.inputForm, data)
               this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.inputForm.processDate = data.processDate
+              this.detailDivide(data.details)
+            } else {
+              // 初始化
+              this.programProjectListInfoService.queryById(id).then(({data}) => {
+                this.inputForm.projectId = data.id
+                this.inputForm.projectName = data.name
+                this.inputForm.assessmentDate = data.assessmentDate
+                this.userService.queryById(data.projectManager).then(({data}) => {
+                  this.inputForm.projectManagerName = data.name
+                })
+              })
+              this.inputForm.processUserId = this.userId
+              this.inputForm.processUserName = this.name
+              this.inputForm.processDate = new Date()
+              this.proofreadInfoService.list('1').then(({data}) => { this.detailDivide(data) })
             }
             this.loading = false
           })
@@ -163,6 +443,16 @@
         this.$refs['inputForm'].validate((valid) => {
           if (valid) {
             this.loading = true
+            // 列表处理
+            this.inputForm.details = []
+            this.inputForm.detailFor1010.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2010.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2020.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2030.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2040.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2050.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2060.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor30.forEach(item => { this.inputForm.details.push(item) })
             this.proofreadInfoService.save(this.inputForm).then(({data}) => {
               this.close()
               this.$message.success(data)
@@ -176,6 +466,42 @@
       close () {
         this.$refs.inputForm.resetFields()
         this.visible = false
+      },
+      detailDivide (details) {
+        this.inputForm.detailFor1010 = []
+        this.inputForm.detailFor2010 = []
+        this.inputForm.detailFor2020 = []
+        this.inputForm.detailFor2030 = []
+        this.inputForm.detailFor2040 = []
+        this.inputForm.detailFor2050 = []
+        this.inputForm.detailFor2060 = []
+        this.inputForm.detailFor30 = []
+        details.forEach(item => {
+          if (item.sort.startsWith('1010')) {
+            this.inputForm.detailFor1010.push(item)
+          }
+          if (item.sort.startsWith('2010')) {
+            this.inputForm.detailFor2010.push(item)
+          }
+          if (item.sort.startsWith('2020')) {
+            this.inputForm.detailFor2020.push(item)
+          }
+          if (item.sort.startsWith('2030')) {
+            this.inputForm.detailFor2030.push(item)
+          }
+          if (item.sort.startsWith('2040')) {
+            this.inputForm.detailFor2040.push(item)
+          }
+          if (item.sort.startsWith('2050')) {
+            this.inputForm.detailFor2050.push(item)
+          }
+          if (item.sort.startsWith('2060')) {
+            this.inputForm.detailFor2060.push(item)
+          }
+          if (item.sort.startsWith('30')) {
+            this.inputForm.detailFor30.push(item)
+          }
+        })
       }
     }
   }