Bladeren bron

中审项目报销-单独建表

huangguoce 2 maanden geleden
bovenliggende
commit
9bcf897881
2 gewijzigde bestanden met toevoegingen van 259 en 240 verwijderingen
  1. 144 160
      src/views/zs/reimbursement/info/CwProgramPageForm.vue
  2. 115 80
      src/views/zs/reimbursement/info/ReimbursementForm.vue

+ 144 - 160
src/views/zs/reimbursement/info/CwProgramPageForm.vue

@@ -1,19 +1,14 @@
 <template>
   <div>
-    <el-dialog
-      :title="title"
-      :close-on-click-modal="false"
-	  dialogDrag
-	  width="1100px"
-      height="500px"
-      @close="close"
+    <el-dialog :title="title" :close-on-click-modal="false" dialogDrag width="1100px" height="500px" @close="close"
       v-model="visible">
       <div v-if="isShow">
         <el-radio v-model="checkType" label="1" size="small" style="margin-right: 20px">项目</el-radio>
         <el-radio v-model="checkType" label="2" size="small" style="margin-right: 20px">其他</el-radio>
       </div>
       <div style="height: calc(100% - 80px);" v-if="checkType === '1'">
-        <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+        <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm"
+          @keyup.enter.native="refreshList()" @submit.native.prevent>
           <!-- 搜索框-->
           <el-form-item label="项目名称" prop="name">
             <el-input size="small" v-model="searchForm.projectName" placeholder="请输入项目名称" clearable></el-input>
@@ -27,191 +22,180 @@
             <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
           </el-form-item>
         </el-form>
-        <vxe-table
-          border="inner"
-          auto-resize
-          resizable
-          height="400px"
-          :loading="loading"
-          size="small"
-          ref="programTable"
-          show-header-overflow
-          show-overflow
-          highlight-hover-row
-          :menu-config="{}"
-          :print-config="{}"
-          :sort-config="{remote:true}"
-          :data="dataList"
-          :checkbox-config="{}">
+        <vxe-table border="inner" auto-resize resizable height="400px" :loading="loading" size="small"
+          ref="programTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}" :print-config="{}"
+          :sort-config="{ remote: true }" :data="dataList" :checkbox-config="{}">
           <vxe-column type="seq" width="60" title="序号"></vxe-column>
           <vxe-column type="checkbox" width="40px"></vxe-column>
-          <vxe-column min-width="230" align="center" title="项目名称" field="projectName" show-overflow="title"></vxe-column>
-          <vxe-column min-width="160" align="center" title="项目编号" field="projectNumber" show-overflow="title"></vxe-column>
-          <vxe-column min-width="160" align="center" title="合同名称" field="contractName" show-overflow="title"></vxe-column>
-          <vxe-column min-width="160" align="center" title="创建人" field="createBy.name" show-overflow="title"></vxe-column>
+          <vxe-column min-width="230" align="center" title="项目名称" field="projectName"
+            show-overflow="title"></vxe-column>
+          <vxe-column min-width="160" align="center" title="项目编号" field="projectNumber"
+            show-overflow="title"></vxe-column>
+          <vxe-column min-width="160" align="center" title="合同名称" field="contractName"
+            show-overflow="title"></vxe-column>
+          <vxe-column min-width="160" align="center" title="创建人" field="createBy.name"
+            show-overflow="title"></vxe-column>
           <vxe-column min-width="160" align="center" title="创建时间" field="createDate" show-overflow="title"></vxe-column>
-<!--          <vxe-column  title="项目名称" field="name"></vxe-column>-->
-<!--          <vxe-column width="200px" title="项目编号" field="no"></vxe-column>-->
-<!--          <vxe-column width="150px" title="登记人" field="createBy"></vxe-column>-->
-<!--          <vxe-column width="100px" title="委托方" field="clientName"></vxe-column>-->
+          <!--          <vxe-column  title="项目名称" field="name"></vxe-column>-->
+          <!--          <vxe-column width="200px" title="项目编号" field="no"></vxe-column>-->
+          <!--          <vxe-column width="150px" title="登记人" field="createBy"></vxe-column>-->
+          <!--          <vxe-column width="100px" title="委托方" field="clientName"></vxe-column>-->
 
         </vxe-table>
-        <vxe-pager
-          background
-          size="small"
-          :current-page="tablePage.currentPage"
-          :page-size="tablePage.pageSize"
-          :total="tablePage.total"
-          :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+        <vxe-pager background size="small" :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
+          :total="tablePage.total" :page-sizes="[10, 20, 100, 1000, { label: '全量数据', value: 1000000 }]"
           :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
           @page-change="currentChangeHandle">
         </vxe-pager>
       </div>
       <div style="height: 500px;" v-if="checkType === '2'">
-        <el-form  label-width="80px" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-          <el-row  :gutter="15">
+        <el-form label-width="80px" class="query-form" ref="searchForm" :model="searchForm"
+          @keyup.enter.native="refreshList()" @submit.native.prevent>
+          <el-row :gutter="15">
             <el-col :span="21">
               <el-form-item label="详情" prop="detail">
-                <el-input style="width: 100%" type="textarea" maxlength="500" v-model="detail" placeholder="请输入详情" show-word-limit></el-input>
+                <el-input style="width: 100%" type="textarea" maxlength="500" v-model="detail" placeholder="请输入详情"
+                  show-word-limit></el-input>
               </el-form-item>
             </el-col>
           </el-row>
         </el-form>
       </div>
-		<template #footer>
-			<span class="dialog-footer">
-			  <el-button size="default" @click="close()" icon="el-icon-circle-close">关闭</el-button>
-			  <el-button size="default" type="primary" v-if="method != 'view'" @click="getProgram()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-			</span>
-		</template>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button size="default" @click="close()" icon="el-icon-circle-close">关闭</el-button>
+          <el-button size="default" type="primary" v-if="method != 'view'" @click="getProgram()"
+            icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+        </span>
+      </template>
 
     </el-dialog>
   </div>
 </template>
 
 <script>
-  import ProjectRecordsService from '@/api/cw/projectRecords/ProjectRecordsService'
-  // import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
-  // import ReimbursementApprovalService from '@/api/cw/reimbursementApproval/ReimbursementApprovalService'
-  export default {
-    data () {
-      return {
-        title: '项目选择',
-        method: '',
-        visible: false,
-        loading: false,
-        tablePage: {
-          total: 0,
-          currentPage: 1,
-          pageSize: 10,
-          orders: []
-        },
-        dataList: [],
-        searchForm: {
-          projectName: '',
-          projectNumber: '',
-          createBy: ''
-        },
-        checkType: '',
-        detail: '',
-        isShow: true,
-        num: true // num为true是多选,false是单选
-      }
-    },
-    // projectRecordsService: null,
-    // programProjectListInfoService: null,
-    // reimbursementApprovalService: null,
-    created () {
-      // this.projectRecordsService = new ProjectRecordsService()
-      // this.programProjectListInfoService = new ProgramProjectListInfoService()
-      // this.reimbursementApprovalService = new ReimbursementApprovalService()
-    },
-    components: {
-    },
-    methods: {
-      init (isShow, num) {
-        if (this.commonJS.isEmpty(isShow)) {
-          this.isShow = true
+import ProjectRecordsService from '@/api/cw/projectRecords/ProjectRecordsService'
+// import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
+// import ReimbursementApprovalService from '@/api/cw/reimbursementApproval/ReimbursementApprovalService'
+export default {
+  data() {
+    return {
+      title: '项目选择',
+      method: '',
+      visible: false,
+      loading: false,
+      tablePage: {
+        total: 0,
+        currentPage: 1,
+        pageSize: 10,
+        orders: []
+      },
+      dataList: [],
+      searchForm: {
+        projectName: '',
+        projectNumber: '',
+        createBy: ''
+      },
+      checkType: '',
+      detail: '',
+      isShow: true,
+      num: true // num为true是多选,false是单选
+    }
+  },
+  // projectRecordsService: null,
+  // programProjectListInfoService: null,
+  // reimbursementApprovalService: null,
+  created() {
+    // this.projectRecordsService = new ProjectRecordsService()
+    // this.programProjectListInfoService = new ProgramProjectListInfoService()
+    // this.reimbursementApprovalService = new ReimbursementApprovalService()
+  },
+  components: {
+  },
+  methods: {
+    init(isShow, num) {
+      if (this.commonJS.isEmpty(isShow)) {
+        this.isShow = true
+        this.checkType = '1'
+      } else {
+        if (isShow === false || isShow === 'false') {
+          this.isShow = false
+          this.checkType = '1'
+          this.$message({ message: '第一条为项目后面新增只能选择项目', type: 'warning', customClass: 'messageZindex' })
+        } else if (isShow === '1') {
+          this.isShow = false
           this.checkType = '1'
         } else {
-          if (isShow === false || isShow === 'false') {
-            this.isShow = false
-            this.checkType = '1'
-            this.$message({message: '第一条为项目后面新增只能选择项目', type: 'warning', customClass: 'messageZindex'})
-          } else if (isShow === '1') {
-            this.isShow = false
-            this.checkType = '1'
-          } else {
-            this.isShow = false
-            this.checkType = '2'
-          }
+          this.isShow = false
+          this.checkType = '2'
         }
-        if (this.commonJS.isEmpty(num) || num === true) {
-          this.num = true // num为true是多选,false是单选
-        } else {
-          this.num = false
+      }
+      if (this.commonJS.isEmpty(num) || num === true) {
+        this.num = true // num为true是多选,false是单选
+      } else {
+        this.num = false
+      }
+      this.visible = true
+      // this.list()
+    },
+    // 表单提交
+    getProgram() {
+      let rows
+      if (this.checkType === '1') {
+        if (this.commonJS.isEmpty(this.$refs.programTable.getCheckboxRecords())) {
+          this.$message.error('请至少选择一条数据')
+          return
         }
-        this.visible = true
-        // this.list()
-      },
-      // 表单提交
-      getProgram () {
-        let rows
-        if (this.checkType === '1') {
-          if (this.commonJS.isEmpty(this.$refs.programTable.getCheckboxRecords())) {
-            this.$message.error('请至少选择一条数据')
+        if (this.num === false) {
+          if (this.$refs.programTable.getCheckboxRecords().length > 1) {
+            this.$message.error('最多选择一条数据')
             return
           }
-          if (this.num === false) {
-            if (this.$refs.programTable.getCheckboxRecords().length > 1) {
-              this.$message.error('最多选择一条数据')
-              return
-            }
-          }
-          rows = this.$refs.programTable.getCheckboxRecords()
-        } else {
-          if (this.commonJS.isEmpty(this.detail)) {
-            this.$message.error('请填写开票详情')
-            return
-          }
-          rows = [{projectName: this.detail}]
         }
-        this.close()
-        this.$emit('getProgram', rows)
-      },
-      list () {
-        this.loading = true
-        this.searchForm.status = '5'
-        ProjectRecordsService.list({
-          'current': this.tablePage.currentPage,
-          'size': this.tablePage.pageSize,
-          'orders': this.tablePage.orders,
-          ...this.searchForm
-        }).then((data) => {
-          this.dataList = data.records
-          this.tablePage.total = data.total
-          this.loading = false
-        })
-      },
-      // 当前页
-      currentChangeHandle ({currentPage, pageSize}) {
-        this.tablePage.currentPage = currentPage
-        this.tablePage.pageSize = pageSize
-        this.list()
-      },
-      resetSearch () {
-        this.$refs.searchForm.resetFields()
-        this.list()
-      },
-      close () {
-        this.detail = ''
-        this.visible = false
+        rows = this.$refs.programTable.getCheckboxRecords()
+      } else {
+        if (this.commonJS.isEmpty(this.detail)) {
+          this.$message.error('请填写开票详情')
+          return
+        }
+        rows = [{ projectName: this.detail }]
       }
+      this.close()
+      this.$emit('getProgram', rows)
+    },
+    list() {
+      this.loading = true
+      this.searchForm.status = '5'
+      ProjectRecordsService.list({
+        'current': this.tablePage.currentPage,
+        'size': this.tablePage.pageSize,
+        'orders': this.tablePage.orders,
+        ...this.searchForm
+      }).then((data) => {
+        this.dataList = data.records
+        this.tablePage.total = data.total
+        this.loading = false
+      })
+    },
+    // 当前页
+    currentChangeHandle({ currentPage, pageSize }) {
+      this.tablePage.currentPage = currentPage
+      this.tablePage.pageSize = pageSize
+      this.list()
+    },
+    resetSearch() {
+      this.$refs.searchForm.resetFields()
+      this.list()
+    },
+    close() {
+      this.detail = ''
+      this.visible = false
     }
   }
+}
 </script>
 <style>
-  .messageZindex {
-    z-index:9999 !important;
-  }
+.messageZindex {
+  z-index: 9999 !important;
+}
 </style>

+ 115 - 80
src/views/zs/reimbursement/info/ReimbursementForm.vue

@@ -112,21 +112,21 @@
           兴光项目报销详情
           <el-button size="default" style="margin-left: 20px" type="primary"
             :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
+            @click="insertEvent('detail')" plain>
             新增
           </el-button>
         </el-divider>
         <el-row :gutter="15">
           <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
+            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable"
+              class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" :key="detailKey"
+              highlight-current-row
               :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
               :edit-rules="validRules">
               <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
                 :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
                 <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
+                  <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
                   <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
                 </template>
               </vxe-table-column>
@@ -139,14 +139,14 @@
                 :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
+                    @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
                 </template>
               </vxe-table-column>
               <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
                 :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
+                    @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
                 </template>
               </vxe-table-column>
               <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
@@ -181,7 +181,7 @@
               <vxe-table-column title="操作" width="100">
                 <template #default="scope">
                   <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
+                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
                 </template>
               </vxe-table-column>
             </vxe-table>
@@ -271,21 +271,21 @@
           兴光报告报销详情
           <el-button size="default" style="margin-left: 20px" type="primary"
             :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
+            @click="insertEvent('report_detail')" plain>
             新增
           </el-button>
         </el-divider>
         <el-row :gutter="15">
           <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
+            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
+              class="vxe-table-element" :data="inputForm.detailInfoReports" style="margin-left: 5em"
+              :key="detailKeyReport" highlight-current-row
               :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
               :edit-rules="validRules">
               <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
                 :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
                 <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
+                  <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
                   <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
                 </template>
               </vxe-table-column>
@@ -298,14 +298,14 @@
                 :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
+                    @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
                 </template>
               </vxe-table-column>
               <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
                 :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
+                    @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
                 </template>
               </vxe-table-column>
               <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
@@ -340,7 +340,7 @@
               <vxe-table-column title="操作" width="100">
                 <template #default="scope">
                   <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
+                    @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
                 </template>
               </vxe-table-column>
             </vxe-table>
@@ -510,15 +510,15 @@
           中审项目报销详情
           <el-button size="default" style="margin-left: 20px" type="primary"
             :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
+            @click="insertEvent('zs_project_detail')" plain>
             新增
           </el-button>
         </el-divider>
         <el-row :gutter="15">
           <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
+            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProject"
+              class="vxe-table-element" :data="inputForm.detailInfoProject" style="margin-left: 5em"
+              :key="detailKeyProject" highlight-current-row
               :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
               :edit-rules="validRules" :tooltip-config="{
                 enterable: true
@@ -539,14 +539,14 @@
                 :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
+                    @focus="typePullForm8(scope.$rowIndex, scope.row.deptId)"></el-input>
                 </template>
               </vxe-table-column>
               <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
                 :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
                 <template #edit="scope">
                   <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
+                    @focus="openProgramPageForm8(scope.$rowIndex, scope.row)"></el-input>
                 </template>
               </vxe-table-column>
               <vxe-colgroup title="发票号和立项号至少填写一项" header-align="center">
@@ -599,7 +599,7 @@
               <vxe-table-column title="操作" width="100">
                 <template #default="scope">
                   <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
+                    @click="removeEvent(scope.row, scope.$rowIndex, 'zs_project_detail')">删除</el-button>
                 </template>
               </vxe-table-column>
             </vxe-table>
@@ -753,20 +753,24 @@
       <!--		</div>-->
       <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
       <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
-      <CwProgramPageForm2 ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm2>
+      <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm4" @getProgram="getProgram4"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm5" @getProgram="getProgram5"></CwProgramPageForm>
+      <CwProgramPageForm ref="cwProgramPageForm8" @getProgram="getProgram8"></CwProgramPageForm>
       <!--      <ReimbursementTypePullForm ref="reimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>-->
-      <CwReimbursementTypePullForm ref="cwReimbursementTypePullForm" @getProgramForType="getProgramForType">
-      </CwReimbursementTypePullForm>
+      <CwReimbursementTypePullFormZs ref="cwReimbursementTypePullForm" @getProgramForType="getProgramForType">
+      </CwReimbursementTypePullFormZs>
       <CwReimbursementTypePullForm ref="cwReimbursementTypePullForm2" @getProgramForType="getProgramForType2">
       </CwReimbursementTypePullForm>
-      <CwReimbursementTypePullForm ref="cwReimbursementTypePullForm3" @getProgramForType="getProgramForType3">
-      </CwReimbursementTypePullForm>
+      <CwReimbursementTypePullFormZs ref="cwReimbursementTypePullForm3" @getProgramForType="getProgramForType3">
+      </CwReimbursementTypePullFormZs>
       <CwReimbursementTypePullFormZs ref="cwReimbursementTypePullForm4" @getProgramForType="getProgramForType4">
       </CwReimbursementTypePullFormZs>
       <CwReimbursementTypePullForm ref="cwReimbursementTypePullForm5" @getProgramForType="getProgramForType5">
       </CwReimbursementTypePullForm>
+      <CwReimbursementTypePullFormZs ref="cwReimbursementTypePullForm8" @getProgramForType="getProgramForType8">
+      </CwReimbursementTypePullFormZs>
+
 
       <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>
       <UserPullForm ref="userPullForm2" @getProgramForUser="getProgramForUser2"></UserPullForm>
@@ -901,6 +905,7 @@ export default {
       detailKey: '',
       detailKeyContract: '',
       detailKeyReport: '',
+      detailKeyProject: "",
       detailKeyOthers: '',
       detailKeyProcured: '',
       inputForm: {
@@ -916,6 +921,7 @@ export default {
         detailInfoContracts: [],
         detailInfoReports: [],
         detailInfoOthers: [],
+        detailInfoProject: [],
         detailInfoProcured: [],
         amountInfos: [],
         invoiceReimbursements: [],
@@ -1038,6 +1044,7 @@ export default {
         detailInfoContracts: [],
         detailInfoReports: [],
         detailInfoOthers: [],
+        detailInfoProject: [],
         detailInfoProcured: [],
         amountInfos: [],
         invoiceReimbursements: [],
@@ -1243,6 +1250,7 @@ export default {
       this.inputForm.detailInfos = []
       this.inputForm.detailInfoContracts = []
       this.inputForm.detailInfoReports = []
+      this.inputForm.detailInfoProject = []
       this.inputForm.detailInfoOthers = []
       this.inputForm.detailInfoProcured = []
       this.inputForm.purchaseNo = ''
@@ -1277,6 +1285,10 @@ export default {
         this.$refs.detailTableReport.remove(row)
         this.inputForm.detailInfoReports.splice(rowIndex, 1)
       }
+      if (type === 'zs_project_detail') {
+        this.$refs.detailTableProject.remove(row)
+        this.inputForm.detailInfoProject.splice(rowIndex, 1)
+      }
       if (type === 'others') {
         this.$refs.detailTableOthers.remove(row)
         this.inputForm.detailInfoOthers.splice(rowIndex, 1)
@@ -1289,18 +1301,22 @@ export default {
     // 新增
     async insertEvent(type) {
       if (type === 'detail') {
+        console.log(111);
+
         let d = {
           userName: this.$store.state.user.name,
           deptName: this.$store.state.user.office.name,
           userId: this.$store.state.user.id,
           deptId: this.$store.state.user.office.id
         }
+        console.log(3333);
         if (this.commonJS.isEmpty(this.inputForm.detailInfos)) {
           this.inputForm.detailInfos = []
         }
         this.$refs.detailTable.insertAt(d)
         this.inputForm.detailInfos.push(d)
         this.detailKey = Math.random()
+        console.log(222);
       }
       if (type === 'amount') {
         let d = {}
@@ -1348,6 +1364,20 @@ export default {
         this.inputForm.detailInfoReports.push(d)
         this.detailKeyReport = Math.random()
       }
+      if (type === 'zs_project_detail') {
+        let d = {
+          userName: this.$store.state.user.name,
+          deptName: this.$store.state.user.office.name,
+          userId: this.$store.state.user.id,
+          deptId: this.$store.state.user.office.id
+        }
+        if (this.commonJS.isEmpty(this.inputForm.detailInfoProject)) {
+          this.inputForm.detailInfoProject = []
+        }
+        this.$refs.detailTableProject.insertAt(d)
+        this.inputForm.detailInfoProject.push(d)
+        this.detailKeyProject = Math.random()
+      }
       if (type === 'others') {
         let d = {
           userName: this.$store.state.user.name,
@@ -1817,19 +1847,7 @@ export default {
         return
       }
       this.indexRow = rowIndex
-      this.reimbursementApprovalTypeService.findById(row.typeId).then((data) => {
-
-        let i = data.sort.toString()
-        i = i.substring(0, 1)
-        // 非业务报销
-
-        if (i !== '1') {
-          this.$refs.cwProgramPageForm.init('2', false)
-        } else {
-          // 打开单选组件
-          this.$refs.cwProgramPageForm.init('1', true)
-        }
-      })
+      this.$refs.cwProgramPageForm.init('2', false)
     },
     openProgramPageForm3(rowIndex, row) {
       if (this.commonJS.isEmpty(row.typeName)) {
@@ -1837,17 +1855,7 @@ export default {
         return
       }
       this.indexRow = rowIndex
-      this.reimbursementApprovalTypeService.findById(row.typeId).then((data) => {
-        let i = data.sort.toString()
-        i = i.substring(0, 1)
-        // 非业务报销
-        if (i !== '1') {
-          this.$refs.cwProgramPageForm3.init('2', false)
-        } else {
-          // 打开单选组件
-          this.$refs.cwProgramPageForm3.init('1', false)
-        }
-      })
+      this.$refs.cwProgramPageForm3.init('2', false)
     },
     openProgramPageForm4(rowIndex, row) {
       if (this.commonJS.isEmpty(row.typeName)) {
@@ -1857,6 +1865,14 @@ export default {
       this.indexRow = rowIndex
       this.$refs.cwProgramPageForm4.init('2', false)
     },
+    openProgramPageForm8(rowIndex, row) {
+      if (this.commonJS.isEmpty(row.typeName)) {
+        this.$message.error('请选择报销类型')
+        return
+      }
+      this.indexRow = rowIndex
+      this.$refs.cwProgramPageForm8.init('2', false)
+    },
     openProgramPageForm5(rowIndex, row) {
       if (this.commonJS.isEmpty(row.typeName)) {
         this.$message.error('请选择报销类型')
@@ -1869,18 +1885,16 @@ export default {
       this.$refs.workContractChooseCom.init(rowIndex)
     },
     getProgram(rows) {
-      if (this.commonJS.isNotEmpty(rows)) {
-        this.inputForm.detailInfos[this.indexRow].projectId = rows.map(item => { return item.id }).join(',')
-        this.inputForm.detailInfos[this.indexRow].projectName = rows.map(item => { return item.projectName }).join(',')
-        // this.inputForm.detailInfos[this.indexRow].reportNumber = rows.map(item => { return item.reportNumber }).join(',')
-      }
+      this.inputForm.detailInfos[this.indexRow].projectId = rows[0].id
+      this.inputForm.detailInfos[this.indexRow].projectName = rows[0].projectName
+      this.inputForm.detailInfos[this.indexRow].reportNumber = rows[0].reportNumber
       this.indexRow = ''
       this.$forceUpdate()
     },
     getProgram3(rows) {
-      this.inputForm.detailInfoReports[this.indexRow].projectId = rows.id
-      this.inputForm.detailInfoReports[this.indexRow].projectName = rows.projectName
-      this.inputForm.detailInfoReports[this.indexRow].reportNumber = rows.reportNumber
+      this.inputForm.detailInfoReports[this.indexRow].projectId = rows[0].id
+      this.inputForm.detailInfoReports[this.indexRow].projectName = rows[0].projectName
+      this.inputForm.detailInfoReports[this.indexRow].reportNumber = rows[0].reportNumber
       this.indexRow = ''
       this.$forceUpdate()
     },
@@ -1891,6 +1905,13 @@ export default {
       this.indexRow = ''
       this.$forceUpdate()
     },
+    getProgram8(rows) {
+      this.inputForm.detailInfoProject[this.indexRow].projectId = rows[0].id
+      this.inputForm.detailInfoProject[this.indexRow].projectName = rows[0].projectName
+      this.inputForm.detailInfoProject[this.indexRow].reportNumber = rows[0].reportNumber
+      this.indexRow = ''
+      this.$forceUpdate()
+    },
     getProgram5(rows) {
       this.inputForm.detailInfoProcured[this.indexRow].projectId = rows[0].id
       this.inputForm.detailInfoProcured[this.indexRow].projectName = rows[0].projectName
@@ -1902,7 +1923,9 @@ export default {
     typePullForm(rowIndex, deptName) {
       this.indexRow = rowIndex
       // this.$refs.reimbursementTypePullForm.init()
-      this.$refs.cwReimbursementTypePullForm.init('1', deptName)
+      this.$refs.cwReimbursementTypePullForm.init('2', deptName)
+
+      //this.$refs.cwReimbursementTypePullForm.init('1', deptName)
     },
     typePullForm2(rowIndex, deptName) {
       this.indexRow = rowIndex
@@ -1919,6 +1942,11 @@ export default {
       // this.$refs.reimbursementTypePullForm.init()
       this.$refs.cwReimbursementTypePullForm4.init('2', deptName)
     },
+    typePullForm8(rowIndex, deptName) {
+      this.indexRow = rowIndex
+      // this.$refs.reimbursementTypePullForm.init()
+      this.$refs.cwReimbursementTypePullForm8.init('2', deptName)
+    },
     typePullForm5(rowIndex, deptName) {
       this.indexRow = rowIndex
       // this.$refs.reimbursementTypePullForm.init()
@@ -1955,6 +1983,13 @@ export default {
       this.indexRow = ''
       this.$forceUpdate()
     },
+    getProgramForType8(rows) {
+      this.inputForm.detailInfoProject[this.indexRow].typeId = rows.id
+      this.inputForm.detailInfoProject[this.indexRow].typeName = rows.name
+      this.indexRow = ''
+      this.$forceUpdate()
+    },
+
     // 报销人下拉弹窗
     userPullListForm(rowIndex) {
       this.indexRow = rowIndex
@@ -2048,30 +2083,30 @@ export default {
         throw new Error('请填写报销类型')
       } else {
         if (this.inputForm.sourceType === '1') {
-          if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers)) {
+          if (this.commonJS.isEmpty(this.inputForm.detailInfos)) {
             this.$message.error('至少填写一条报销详情信息')
             this.loading = false
             throw new Error('至少填写一条报销详情信息')
           } else {
-            let i = this.inputForm.detailInfoOthers.length
+            let i = this.inputForm.detailInfos.length
             for (let j = 0; j < i; j++) {
               let k = j + 1
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].userName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfos[j].userName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销人')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销人')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].typeName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfos[j].typeName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销类型')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销类型')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].projectName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfos[j].projectName)) {
                 this.$message.error('报销详情第' + k + '行请填写报销详情')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请填写报销详情')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].number)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfos[j].number)) {
                 this.$message.error('报销详情第' + k + '行请输入费用')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请输入费用')
@@ -2110,30 +2145,30 @@ export default {
             }
           }
         } else if (this.inputForm.sourceType === '3') {
-          if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers)) {
+          if (this.commonJS.isEmpty(this.inputForm.detailInfoReports)) {
             this.$message.error('至少填写一条报销详情信息')
             this.loading = false
             throw new Error('至少填写一条报销详情信息')
           } else {
-            let i = this.inputForm.detailInfoOthers.length
+            let i = this.inputForm.detailInfoReports.length
             for (let j = 0; j < i; j++) {
               let k = j + 1
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].userName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoReports[j].userName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销人')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销人')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].typeName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoReports[j].typeName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销类型')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销类型')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].projectName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoReports[j].projectName)) {
                 this.$message.error('报销详情第' + k + '行请填写报销详情')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请填写报销详情')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].number)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoReports[j].number)) {
                 this.$message.error('报销详情第' + k + '行请输入费用')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请输入费用')
@@ -2172,36 +2207,36 @@ export default {
             }
           }
         } else if (this.inputForm.sourceType === '8') {
-          if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers)) {
+          if (this.commonJS.isEmpty(this.inputForm.detailInfoProject)) {
             this.$message.error('至少填写一条报销详情信息')
             this.loading = false
             throw new Error('至少填写一条报销详情信息')
           } else {
-            let i = this.inputForm.detailInfoOthers.length
+            let i = this.inputForm.detailInfoProject.length
             for (let j = 0; j < i; j++) {
               let k = j + 1
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].userName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].userName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销人')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销人')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].typeName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].typeName)) {
                 this.$message.error('报销详情第' + k + '行请选择报销类型')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请选择报销类型')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].projectName)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].projectName)) {
                 this.$message.error('报销详情第' + k + '行请填写报销详情')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请填写报销详情')
               }
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].number)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].number)) {
                 this.$message.error('报销详情第' + k + '行请输入费用')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行请输入费用')
               }
 
-              if (this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].projectApprovalNumber) && this.commonJS.isEmpty(this.inputForm.detailInfoOthers[j].invoiceNumber)) {
+              if (this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].projectApprovalNumber) && this.commonJS.isEmpty(this.inputForm.detailInfoProject[j].invoiceNumber)) {
                 this.$message.error('报销详情第' + k + '行发票号或者立项号至少填写一项')
                 this.loading = false
                 throw new Error('报销详情第' + k + '行发票号或者立项号至少填写一项')