Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/modules/program/registered/ProjectList.vue
lizhenhao 2 years ago
parent
commit
3628b10b81

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

@@ -0,0 +1,25 @@
+import request from '@/utils/httpRequest'
+
+export default class ProofreadInfoService {
+  save (param) {
+    return request({
+      url: '/proofread/info/save',
+      method: 'post',
+      data: param
+    })
+  }
+  findById (id) {
+    return request({
+      url: '/proofread/info/findById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  list (type) {
+    return request({
+      url: '/proofread/info/list',
+      method: 'get',
+      params: {type: type}
+    })
+  }
+}

+ 1 - 1
src/views/modules/finance/invoice/ReimbursementTypePullForm.vue

@@ -91,7 +91,7 @@
           return
         }
         rows = this.$refs.typeTable.getCheckboxRecords()
-        if (!rows[0].disabled && rows[0].id !== '3') {
+        if (rows[0].level !== '3' && rows[0].id !== '3') {
           this.$message.error('请选择子集数据')
           return
         }

+ 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

+ 11 - 1
src/views/modules/program/registered/ProjectList.vue

@@ -139,6 +139,9 @@
               <el-button v-if="hasPermission('program:registered:del')&&scope.row.status === '5' && isAdmin" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
 
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isEmpty(scope.row.reportNo)" type="text"  icon="el-icon-circle-check" size="small" @click="saveReportNo(scope.row.id)">生成报告号</el-button>
+              <el-button v-if="hasPermission('program:configuration:type:del')&&scope.row.status === '5' && isAdmin" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
+              <!--三神结束后,评估报告签发前进行资产评估项目(校对)-->
+              <el-button v-if="hasPermission('program:registered:proo')" type="text"  icon="el-icon-delete" size="small" @click="proofread(scope.row.id)">校对</el-button>
 
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isNotEmpty(scope.row.reportNo)&&scope.row.status1 === '0'||scope.row.status1 === '1'||scope.row.status1 === '3'||scope.row.status1 === '4'" type="text"  icon="el-icon-circle-check" size="small" @click="firstAuditPush(scope.row)">一级校审</el-button>
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status1 === '2' && commonJS.isNotEmpty(scope.row.reportNo)" type="text"  icon="el-icon-circle-check" size="small" @click="firstAuditReback(scope.row)">校审撤回</el-button>
@@ -164,6 +167,7 @@
       </div>
     </div>
     <ProjectForm  ref="projectForm" @refreshDataList="refreshList"></ProjectForm>
+    <ProofreadForm  ref="proofreadForm" @refreshDataList="refreshList"></ProofreadForm>
     <WorkContractForm2 ref="workContractForm2" @refreshDataList="refreshList"></WorkContractForm2>
   </div>
 </template>
@@ -171,6 +175,7 @@
 <script>
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
   import ProjectForm from './ProjectForm'
+  import ProofreadForm from './ProofreadForm'
   import WorkContractForm2 from '../../sys/workContract/WorkContractForm2'
   import SelectUserTree from '@/views/modules/utils/treeUserSelect'
   import pick from 'lodash.pick'
@@ -222,7 +227,8 @@
     components: {
       ProjectForm,
       WorkContractForm2,
-      SelectUserTree
+      SelectUserTree,
+      ProofreadForm
     },
     mounted () {
       this.refreshList()
@@ -703,6 +709,10 @@
         }).catch((e) => {
           this.loading = false
         })
+      },
+      // 校对
+      proofread (id) {
+        this.$refs.proofreadForm.init(id)
       }
     }
   }

+ 513 - 0
src/views/modules/program/registered/ProofreadForm.vue

@@ -0,0 +1,513 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+    <el-dialog
+      title="资产评估项目(校对)审核记录表"
+      :close-on-click-modal="false"
+      v-dialogDrag
+      width="1300px"
+      @close="close"
+      @keyup.enter.native=""
+      :visible.sync="visible">
+      <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-col :span="24">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input :disabled="true" v-model="inputForm.projectName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="评估基准日" prop="assessmentDate">
+              <el-input :disabled="true" v-model="inputForm.assessmentDate"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目负责人" prop="projectManagerName">
+              <el-input :disabled="true" v-model="inputForm.projectManagerName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目审核人" prop="processUserName">
+              <el-input :disabled="true" v-model="inputForm.processUserName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="审核日期" prop="processDate">
+              <el-date-picker
+                v-model="inputForm.processDate"
+                type="date"
+                :disabled="true"
+                style="width: 100%"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </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="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-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-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-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 {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
+        }
+      }
+    },
+    proofreadInfoService: 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: {
+    },
+    computed: {
+      name () {
+        return JSON.parse(localStorage.getItem('user')).name
+      },
+      userId () {
+        return JSON.parse(localStorage.getItem('user')).id
+      }
+    },
+    methods: {
+      init (id) {
+        this.inputForm = {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.loading = true
+          this.proofreadInfoService.findById(id).then(({data}) => {
+            if (!this.commonJS.isEmpty(data.projectId)) {
+              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
+          })
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        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)
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      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)
+          }
+        })
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-input-number .el-input__inner {
+    text-align: left;
+  }
+</style>

+ 29 - 65
src/views/modules/reimbursement/info/InfoList.vue

@@ -21,40 +21,10 @@
         </el-date-picker>
       </el-form-item>
       <el-form-item label="经办人" prop="handled">
-        <el-input size="small" v-model="searchForm.handled" placeholder="请输入经办人" clearable>
-          <el-button icon="el-icon-search" slot="append">
-            <SelectUserTree
-              ref="companyTree"
-              :props="{
-                  value: 'id',             // ID字段名
-                  label: 'name',         // 显示名称
-                  children: 'children'    // 子级字段名
-                }"
-              :url="`/sys/user/treeUserDataAllOffice?type=2`"
-              :value="searchForm.handled"
-              :clearable="true"
-              :accordion="true"
-              @getValue="(value, label) => {searchForm.handled=label}"/>
-          </el-button>
-        </el-input>
+        <UserSelect :limit='1' :userName="searchForm.handled" @getValue='(value, label) => {searchForm.handled = label}'></UserSelect>
       </el-form-item>
       <el-form-item label="报销人" prop="remiBy">
-        <el-input size="small" v-model="searchForm.remiBy" placeholder="请输入报销人" clearable>
-          <el-button icon="el-icon-search" slot="append">
-            <SelectUserTree
-              ref="companyTree"
-              :props="{
-                  value: 'id',             // ID字段名
-                  label: 'name',         // 显示名称
-                  children: 'children'    // 子级字段名
-                }"
-              :url="`/sys/user/treeUserDataAllOffice?type=2`"
-              :value="searchForm.remiBy"
-              :clearable="true"
-              :accordion="true"
-              @getValue="(value, label) => {searchForm.remiBy=label}"/>
-          </el-button>
-        </el-input>
+        <UserSelect :limit='1' :userName="searchForm.remiBy" @getValue='(value, label) => {searchForm.remiBy = label}'></UserSelect>
       </el-form-item>
       <el-form-item label="报销状态" prop="type">
         <el-select v-model="searchForm.type" placeholder="请选择" style="width:100%;">
@@ -67,40 +37,32 @@
         </el-select>
       </el-form-item>
       <el-form-item label="报销部门" prop="department">
-        <el-input size="small" v-model="searchForm.department" placeholder="请输入报销部门" clearable>
-          <el-button icon="el-icon-search" slot="append">
-            <SelectTree
-              ref="officeTree"
-              :props="{
-                    value: 'id',             // ID字段名
-                    label: 'name',         // 显示名称
-                    children: 'children'    // 子级字段名
-                  }"
-              :url="`/sys/office/treeData?type=2`"
-              :value="searchForm.department"
-              :clearable="true"
-              :accordion="true"
-              @getValue="(value,label) => {searchForm.department=label}"/>
-          </el-button>
-        </el-input>
+        <SelectTree
+          ref="officeTree"
+          :props="{
+                value: 'id',             // ID字段名
+                label: 'name',         // 显示名称
+                children: 'children'    // 子级字段名
+              }"
+          :url="`/sys/office/treeData?type=2`"
+          :value="searchForm.department"
+          :clearable="true"
+          :accordion="true"
+          @getValue="(value,label) => {searchForm.department=label}"/>
       </el-form-item>
       <el-form-item label="报销类别" prop="remiType">
-        <el-input size="small" v-model="searchForm.remiType" placeholder="请输入报销类别" clearable>
-          <el-button icon="el-icon-search" slot="append">
-            <SelectTree
-              ref="areaTree"
-              :props="{
-                      value: 'id',             // ID字段名
-                      label: 'name',         // 显示名称
-                      children: 'children'    // 子级字段名
-                    }"
-              url="/reimbursement/type/treeData?type=12"
-              :value="searchForm.remiType"
-              :clearable="true"
-              :accordion="true"
-              @getValue="(value, label) => {searchForm.remiType=label}"/>
-          </el-button>
-        </el-input>
+        <SelectTree
+          ref="areaTree"
+          :props="{
+                  value: 'id',             // ID字段名
+                  label: 'name',         // 显示名称
+                  children: 'children'    // 子级字段名
+                }"
+          url="/reimbursement/type/treeData?type=12"
+          :value="searchForm.remiType"
+          :clearable="true"
+          :accordion="true"
+          @getValue="(value, label) => {searchForm.remiType=label}"/>
       </el-form-item>
       <el-form-item label="报销金额" prop="amounts">
         <InputNumber :disabled="false" :precision="num" v-model="searchForm.amounts"></InputNumber>
@@ -189,6 +151,7 @@
   import ReimbursementService from '@/api/sys/ReimbursementService'
   import InputNumber from '@/views/modules/sys/workContract/InputNumber.vue'
   import SelectUserTree from '@/views/modules/utils/treeUserSelect'
+  import UserSelect from '@/components/userSelect'
   import SelectTree from '@/components/treeSelect/treeSelect.vue'
   import ProgramPageForm from '@/views/modules/finance/invoice/ProgramPageForm'
   import InfoForm from './InfoForm'
@@ -237,7 +200,8 @@
       SelectTree,
       ProgramPageForm,
       InfoForm,
-      ProjectForm
+      ProjectForm,
+      UserSelect
     },
     mounted () {
       this.refreshList()

+ 5 - 3
src/views/modules/reimbursement/info/ReimbursementForm.vue

@@ -87,7 +87,7 @@
           </vxe-table-column>
           <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">
             <template v-slot:edit="scope">
-              <el-input v-model="scope.row.reportNumber" ></el-input>
+              <el-input :disabled="true" v-model="scope.row.reportNumber" ></el-input>
             </template>
           </vxe-table-column>
           <vxe-table-column field="number" title="费用(元)" :edit-render="{}" :rules="[{required: true, message:'请输入费用', trigger:'blur'}]">
@@ -545,7 +545,7 @@
       },
       openProgramPageForm (rowIndex, row) {
         if (this.commonJS.isEmpty(row.typeName)) {
-          this.$message.error('请选择报销类型')
+          this.$message.error('请选择报销项目')
           return
         }
         this.indexRow = rowIndex
@@ -554,7 +554,7 @@
           let i = data.sort.toString()
           i = i.substring(0, 1)
           // 非业务报销
-          if (i === '2') {
+          if (i !== '1') {
             this.$refs.programPageForm.init('2', false)
           } else {
             // 打开单选组件
@@ -563,8 +563,10 @@
         })
       },
       getProgram (rows) {
+        console.log('aaaaaaaaaaa', rows[0])
         this.inputForm.detailInfos[this.indexRow].projectId = rows[0].id
         this.inputForm.detailInfos[this.indexRow].projectName = rows[0].name
+        this.inputForm.detailInfos[this.indexRow].reportNumber = rows[0].reportNo
         this.indexRow = ''
         this.$forceUpdate()
       },