src/views/project/donateconsolationfundlist/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/expertFeeFundApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/fundcontext/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/overheadcosts/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/funddetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseslist/Modifydetails/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/project/donateconsolationfundlist/index.vue
@@ -242,12 +242,18 @@ <el-input v-model="scope.row.taxedamount" placeholder="ç¨åéé¢" /> </template> </el-table-column> <!-- <el-table-column prop="unitno" align="center" label="å·¥ä½åä½" width="180"> <template slot-scope="scope"> <org-selecter :ref="'unitSel' + scope.$index" :org-type="'3'" v-model="scope.row.unitno" /> </template> </el-table-column> --> <el-table-column prop="unitname" align="center" label="å·¥ä½åä½" width="180"> <template slot-scope="scope"> <el-input v-model="scope.row.unitname" placeholder="å·¥ä½åä½" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份è¯å·" width="200"> <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份è¯å·" /> src/views/project/fund/expertFeeFundApply/index.vue
@@ -1027,12 +1027,12 @@ if (response.code == 200) { this.$message({ type: "success", message: "ç³è¯·æå", message: "æäº¤ä¸å®¶è´¹ç¨ç³è¯·å®¡æ¹æåï¼", }); } else { this.$message({ type: "error", message: "ç³è¯·å¤±è´¥", message: "æäº¤ä¸å®¶è´¹ç¨ç³è¯·å¤±è´¥ï¼", }); } this.loading = false; @@ -1488,7 +1488,6 @@ /** æ¥è¯¢æç®äººéæ °é®éå表 */ getList() { console.log("getList", "getList"); this.loading = true; this.queryParams.params = {}; if (null != this.daterangeReporttime && "" != this.daterangeReporttime) { @@ -1497,6 +1496,8 @@ this.queryParams.params["endReporttime"] = this.daterangeReporttime[1]; } // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); console.log("111", this.queryParams); listDonatebaseinfo(this.queryParams).then((response) => { this.donatebaseinfoList = response.rows; this.total = response.total; src/views/project/fund/fundcontext/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,1981 @@ <!-- --> <template> <div class="Modifydetailscla"> <div class="boxdiv"> <div class="top-text">{{ title }}</div> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row> <el-col :span="5"> <el-form-item label="ç³è¯·æ¥æ" prop="createTime"> <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="ç³è¯·æ¥æ"> </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç»å人" prop="username"> <el-select v-model="form.username" placeholder="ç³è¯·äºº" clearable filterable allow-create style="width: 100%"> <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="æå±ç»å«" prop="deptmentname"> <el-input v-model="form.deptmentname" placeholder="请è¾å ¥æå±ç»å«" clearable /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç»é¿" prop="managername"> <el-input v-model="form.managername" placeholder="请è¾å ¥ç»é¿" clearable /> </el-form-item> </el-col> </el-row> <el-row> <!-- <el-col :span="7"> <el-form-item label="å·¥ä½åä½" prop="unitno"> <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> </el-form-item> </el-col> --> <el-col :span="5"> <el-form-item label="ç³è¯·åç±»å"> <el-radio v-model="form.applytype" label="4">æé¡¹è´¹ç¨ç³è¯·å</el-radio> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="ç³è¯·è¯´æ" prop="remark"> <el-input v-model="form.remark" placeholder="ç³è¯·è¯´æ" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="èç³»çµè¯" prop="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥èç³»çµè¯" /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <!-- <el-col :span="5"> <el-form-item label="å计éé¢" prop="amountrequested"> <el-input v-model="form.amountrequested" placeholder="ç³è¯·éé¢" :disabled="true" /> </el-form-item> </el-col> --> <el-col :span="5"> <el-form-item label="ç³è¯·éé¢" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="åºç¼´ç¨" prop="taxcost"> <el-input v-model="form.taxcost" placeholder="åºç¼´ç¨éé¢å计" :disabled="true" /> </el-form-item> </el-col> <!-- <el-col :span="5"> <el-form-item label="ç¨åéé¢" prop="pretaxcost"> <el-input v-model="form.taxedcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col>--> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请è¾å ¥æç®è å§å" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç³è¯·ç¶æ" prop="recordstatus"> <!-- <el-input v-model="form.recordstatus" placeholder="å®¡æ ¸æè§"/> --> <el-select v-model="form.recordstatus" placeholder="è¯·éæ©å®¡æ ¸ç¶æ" clearable size="small" :disabled="true"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px" /> <el-row style="margin-bottom: 10px" v-if="businesstype == '1'"> <el-col :span="4"> <el-button @click.native.prevent="addAllItems" type="primary" size="small"> å¯¼å ¥æå¡é¡¹ç® </el-button> </el-col> </el-row> <el-row> <el-table :data="fundDetails" v-loading="loading" border highlight-current-row> <el-table-column prop="orderno" align="center" label="åºå·" width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="åºå·" /> </template> </el-table-column> <el-table-column prop="applytype" align="center" label="è´¹ç¨ç±»å" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="è´¹ç¨ç±»å" @change="loadItemType(scope.row)"> <el-option v-for="dict in rowfeeItemTypes" :key="dict.index" :label="dict.label" :value="dict.value"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemid" align="center" label="è´¹ç¨é¡¹ç®" width="260"> <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="è´¹ç¨é¡¹ç®" filterable @change="verifyFeeItem(scope.row)" :filter-method="(val) => searchItemType(val, scope)"> <el-option v-for="dict in scope.row.itemlist" :key="dict.index" :label="dict.itemName" :value="dict.id"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemcode" align="center" label="项ç®ç¼å·" show-overflow-tooltip="" v-if="form.applytype == '1'"> </el-table-column> <el-table-column prop="servicesscope" align="center" label="è´¹ç¨è¯´æ" v-if="form.applytype == '1'" width="180"> <template slot-scope="scope"> <el-select v-model="scope.row.servicesscope" placeholder="è´¹ç¨è¯´æ" clearable allow-create filterable @change="selectedRemark(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="price" align="center" label="åä»·" width="120" v-if="0"> <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="åä»·" @blur="(val) => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="quantity" align="center" label="æ°é" width="120" v-if="0"> <template slot-scope="scope"> <el-input v-model="scope.row.quantity" placeholder="æ°é" @blur="(val) => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column v-if="this.ismanager == true" prop="amount" align="center" label="ç¨åéé¢" width="120"> <template slot-scope="scope"> <!-- <el-select v-model="scope.row.amount" placeholder="ç¨åéé¢" clearable filterable allow-create @change="selectamount(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.expensedescribe" :label="dict.expense" :value="dict.expense"></el-option> </el-select> --> <el-input v-model="scope.row.amount" placeholder="ç¨åéé¢" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="ç¨åéé¢" width="120" v-if="this.ismanager == true & (form.applytype == '1' || form.applytype == '2')"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="ç¨åéé¢" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="å§å" width="100" v-if="form.applytype == '1' || form.applytype == '2'"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname }}</el-button> <!-- <el-select filterable allow-create ref="getReportname" default-first-option @change="selectpersonmsg(scope.row)" v-model="scope.row.beneficiaryname" placeholder="è¯·éæ©" > <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > </el-option> </el-select> --> </template> </el-table-column> <el-table-column prop="unitno" align="center" label="åä½åç§°" width="220" v-if="form.applytype != '4'"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> <!-- <el-select v-model="scope.row.unitno" placeholder="åä½" clearable filterable allow-create > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> --> </template> </el-table-column> <el-table-column prop="remark" align="center" label="夿³¨" v-if="form.applytype == '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="夿³¨" /> </template> </el-table-column> <el-table-column prop="title" align="center" label="èç§°" width="120" v-if="form.applytype == '1' || form.applytype == '2'"> <template slot-scope="scope"> <el-input v-model="scope.row.title" placeholder="èç§°" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份è¯å·" width="200" v-if="form.applytype == '1' || form.applytype == '2'"> <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份è¯å·" /> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="弿·é¶è¡" width="200" v-if="form.applytype != '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="弿·é¶è¡" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="é¶è¡å¸å·" width="210" v-if="form.applytype != '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¸å·" /> </template> </el-table-column> <el-table-column fixed="right" align="center" label="æä½" width="180" v-if="operationtype == 'add' || operationtype == 'edit'"> <template slot-scope="scope"> <el-button type="text" size="mini" @click="addRow(scope.$index)">æ°å¢</el-button> <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, fundDetails) " type="text" size="small"> å é¤ </el-button> </template> </el-table-column> </el-table> </el-row> <!-- <el-row> <el-col :span="7"> <el-form-item label="颿¯éé¢" prop="prepaidamount"> <el-input v-model="form.prepaidamount" placeholder="ç³è¯·éé¢" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="7"> <el-form-item label="OPOä¸å¿ç¾å" prop="opochecker"> <el-input v-model="form.opochecker" placeholder="opoä¸å¿ç¾å" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="è´¢å¡å¯é¢é¿" prop="finvicepresident"> <el-input v-model="form.finvicepresident" placeholder="è´¢å¡å¯é¢é¿" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="ä¸å¡å¯é¢é¿" prop="busvicepresident"> <el-input v-model="form.busvicepresident" placeholder="ä¸å¡å¯é¢é¿" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="åå ¬å®¤ä¸»ä»»" prop="officedirector"> <el-input v-model="form.officedirector" placeholder="请è¾å ¥åå ¬å®¤ä¸»ä»»" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="è´¢å¡é¨è´è´£äºº" prop="financedirector"> <el-input v-model="form.financedirector" placeholder="请è¾å ¥è´¢å¡é¨è´è´£äºº" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="è´¢å¡å®¡æ ¸" prop="financechecher"> <el-input v-model="form.financechecher" placeholder="请è¾å ¥è´¢å¡å®¡æ ¸" /> </el-form-item> </el-col> </el-row> --> <el-row> <el-col :span="12"> <el-form-item label="è´¹ç¨ç³è¯·éä»¶" align="left" prop="annexbankcard"> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled='operationtype == "detail"' :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled='operationtype == "detail"' size="small" type="primary">ä¸ä¼ </el-button> </el-upload> </el-form-item> </el-col> </el-row> <el-row v-if="operationtype == 'detail' || operationtype == 'check'"> <el-table :data="fundflowList" border> <el-table-column label="å®¡æ ¸äºº" align="center" width="120" prop="checkusername" /> <el-table-column label="å®¡æ ¸æ¥æ" align="center" width="160" prop="createTime" /> <el-table-column label="å®¡æ ¸ç»æ" align="center" width="200" prop="flowconclusion"><template slot-scope="scope"><span v-if="scope.row.flowconclusion == 1">éè¿</span><span v-if="scope.row.flowconclusion == 2">ä¸éè¿</span></template> </el-table-column> <el-table-column label="å®¡æ ¸å¤æ³¨" align="center" prop="flowcontent" /> </el-table> </el-row> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationtype == 'check'"> <el-col :span="7"> <el-form-item label="å®¡æ ¸ç»æ" align="left"> <el-radio-group v-model="checkObj.flowlevelone" align="left"> <el-radio label="1">éè¿</el-radio> <el-radio label="2">ä¸éè¿</el-radio> </el-radio-group> </el-form-item> </el-col> </el-row> <el-row v-if="operationtype == 'check'"> <el-col :span="17"> <el-form-item label="å®¡æ ¸å¤æ³¨" align="left"> <el-input v-model="checkObj.flowconclusion" placeholder="夿³¨" /> </el-form-item> </el-col> </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="operationtype == 'add' || operationtype == 'edit'">ä¿ å</el-button> <el-button type="primary" @click="checksubmit" v-if="operationtype == 'check'">æ 交</el-button> <el-button @click="cancel" v-if="operationtype == 'detail'">é åº</el-button> </div> </div> <el-dialog :visible.sync="showDetailInfoDialog" :close-on-click-modal="false" :title="'å¯¼å ¥ä¿¡æ¯'" width="500px" style="text-align: center" v-loading="loading"> <el-form ref="funddetailForm" :model="funddetailForm"> <el-row> <el-col :span="24" v-if="showDetailInfooperationtype == 'name'"> <el-form-item label="è¯·éæ©ä¸å®¶ä¿¡æ¯ï¼" prop="expertfrom"> <el-radio-group v-model="expertfrom" style="margin-bottom: 0"> <el-radio label="1">ä¸å®¶åº</el-radio> <el-radio label="2">æ°å¢ä¸å®¶</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfooperationtype == 'name' && expertfrom == '1'"> <el-form-item label="ä¸å®¶å§å" prop="beneficiaryname" label-width="80px"> <el-select filterable allow-create ref="beneficiaryname" default-first-option v-model="funddetailForm.beneficiaryname" placeholder="è¯·éæ©" style="width: 100%"> <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfooperationtype == 'unit'"> <el-form-item label="åä½åç§°" prop="unitno" label-width="80px"> <el-select v-model="funddetailForm.unitno" placeholder="åä½åç§°" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="ä¸å®¶å§å" prop="expertname" label-width="80px"> <el-input v-model="funddetailForm.expertname" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="è ç§°" prop="experttitle" label-width="80px"> <el-select v-model="funddetailForm.experttitle" placeholder="å¿ å¡«é¡¹"> <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="身份è¯å·" prop="expertidcardno" label-width="80px"> <el-input v-model="funddetailForm.expertidcardno" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> </el-row> <!-- <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="人åç±»å«" prop="usertype" label-width="80px"> <el-select v-model="funddetailForm.usertype" placeholder="å¿ å¡«é¡¹"> <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </el-select> </el-form-item> </el-col> </el-row> --> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="åä½åç§°" prop="expertunitno" label-width="80px"> <el-select v-model="funddetailForm.expertunitno" placeholder="åä½åç§°" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> </el-select> </el-form-item></el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="弿·é¶è¡" prop="expertdepositbank" label-width="80px"> <el-input v-model="funddetailForm.expertdepositbank" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="é¶è¡å¡å·" prop="expertbankcardno" label-width="80px"> <el-input v-model="funddetailForm.expertbankcardno" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showDetailInfoDialog = false">å æ¶</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">ç¡® å®</el-button> </span> </el-dialog> </div> </template> <script> //è¿éå¯ä»¥å¯¼å ¥å ¶ä»æä»¶ï¼æ¯å¦ï¼ç»ä»¶ï¼å·¥å ·jsï¼ç¬¬ä¸æ¹æä»¶jsï¼jsonæä»¶ï¼å¾çæä»¶ççï¼ //ä¾å¦ï¼import ãç»ä»¶åç§°ã from 'ãç»ä»¶è·¯å¾ã'; import { listDonatebaseinfo, getDonatebaseinfo } from "@/api/project/donatebaseinfo"; import { onelistFund, listFund, getFund, delFund, addFund, updateFund, exportFund, getdownloadLW, getdownloadSH, getdownloadSS, getdownloadYX, getdownloadBX, addorupdateFund, getdetailsByItemId } from "@/api/project/fund"; import { onelistFunds, listFunddetails, listFunddetail, getFunddetail, delFunddetail, addFunddetail, getownFundDetail, updateFunddetail, exportFunddetail, getItemNames, getFundType, getFundTypeAll, listcountItem, getDataBybeneficiaryNo, getTaxByBeneFiciaryNo, getTaxBeforeByBeneFiciaryNo, getTaxationByBeneFiciaryNo, getTaxBeforeByAfterMoney } from "@/api/project/funddetail"; import { listFundflow } from "@/api/project/fundflow"; import { listOrganization, getOrganization, listReportname, listUser } from "@/api/project/organization"; import { listExternalperson, getExternalperson, getInfoBytheUserNo, delExternalperson, addExternalperson, updateExternalperson, exportExternalperson } from "@/api/project/externalperson"; import { getUserProfile } from "@/api/system/user"; import Li_area_select from "@/components/Address"; import OrgSelecter from "@/views/project/components/orgselect"; import { getToken } from "@/utils/auth"; export default { //importå¼å ¥çç»ä»¶éè¦æ³¨å ¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ components: { Li_area_select, OrgSelecter, }, name: "fundApply", dicts: [ //"sys_consolationfundlevel", //"sys_OrganizationType", "sys_DonationStatus", //"sys_depositbank", //"sys_FamilyRelation", //"sys_IDType", //"sys_ConsolationType", //"sys_fund_type", //"sys_finsubject", //"sys_financeitemtype", //"sys_expensetype", "sys_recordstatus", "sys_professionaltitle" ], data() { //è¿éåæ¾æ°æ® return { // é®ç½©å± loading: false, // 导åºé®ç½©å± exportLoading: false, usernamedata: '', // æ¥è¯¢åæ° queryParams: { organizationname: null, organizationtype: null, pageNum: 1, pageSize: 10, name: null, idcardno: null, residenceprovince: null, residencecity: null, residencetown: null, recordstate: null, treatmenthospitalname: null, donorno: null, reportername: null, reporttime: null, }, fundQueryParam: { pageNum: 1, pageSize: 100, infoid: null, applytype: "4", createBy: null, }, expertQueryParam: { pageNum: 1, pageSize: 10000, userno: null, username: null, usertype: null, }, //计ç®ä¸ªç¨åæ° taxParam: { beneficiaryNo: '', money: '0', startTime: '', }, // 表ååæ° form: {}, //è´¹ç¨ç³è¯·è¡¨åtitle title: "", total: 0, //ç³è¯·åç±»å businesstype: '4', //æä½ç±»å operationtype: "edit", // å½åç¨æ·ä¿¡æ¯ userprofile: {}, //ç³»ç»ç¨æ·å表 userlist: [], //ææäººå表 personlist: [], reporters: [], itemlist: [], //ä¸å®¶å表 expertlist: [], //ä¸å®¶è´¹éæ©ï¼1æ¯ä¸å®¶åºï¼2æ¯æ°å¢ expertfrom: "1", // è¡¨åæ ¡éª rules: { createTime: [ { required: true, message: "请è¾å ¥å¡«æ¥æ¥æ", trigger: "blur" } ], reason: [ { required: true, message: "请è¾å ¥åºå·®äºç±", trigger: "blur" } ], deptmentname: [ { required: true, message: "请è¾å ¥æå±ä¸å¡ç»", trigger: "blur" } ] }, //æç®æ¡ä¾åè¡¨æ°æ® donatebaseinfoList: [], //å½åéä¸æç®æ¡ä¾ curCase: {}, // æç®äººéæ °é®éè¡¨æ ¼æ°æ® donateconsolationfundList: [], //è´¹ç¨æç»å表 fundDetails: [], formData: {}, amount: 0.00, totalPreTaxAmount: 0.0, totalAfterTaxAmount: 0.0, totalAmount: 0.0, //è¡è®°å½çè´¹ç¨ç±»åæ°ç» rowfeeItemTypes: [], //è´¹ç¨ç±»åæ°ç» feeItemTypes: [], //è´¹ç¨è¯´æ rowfeeblocks: [], //æ¯å¦æ¯ä¸å®¶è´¹çOPO审æ¹äººå ismanager: false, fundflowList: [], unitList: [], showDetailInfoDialog: false, showDetailInfooperationtype: "", funddetailForm: { index: null, beneficiaryname: null, beneficiaryno: null, unitno: null, unitname: null, expertname: null, expertidcardno: null, expertunitno: null, expertunitname: null, experttitle: null, expertdepositbank: null, expertbankcardno: null, }, expertform: { id: null, address: null, bankcardno: null, branchbankname: null, createBy: null, createTime: null, del_flag: null, depositbank: null, idcardno: null, personnelunitno: null, pym: null, remark: null, searchValue: null, sex: null, telephone: null, title: null, unitname: null, unitno: null, updateBy: null, updateTime: null, username: null, userno: null, userstatus: 1, usertype: null, wbm: null, }, //éä»¶å表 fileList: [], //ä¸ä¼ éä»¶è·¯å¾ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", //æä»¶ä¸ä¼ token headers: { Authorization: "Bearer " + getToken(), }, }; }, //çå¬å±æ§ 类似äºdataæ¦å¿µ computed: {}, //çæ§dataä¸çæ°æ®åå watch: {}, //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ created() { //è·ååæ®ç±»ååæä½è¦æ± this.getCurFundType(); this.getroute(); this.getUserProfile(); }, //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå ç´ ï¼ mounted() { this.getUserList(); this.getUnitList(); this.selectReporters(); this.getExternalpersonList(); this.getBaseInfoList(); }, beforeCreate() { }, //çå½å¨æ - å建ä¹å beforeMount() { }, //çå½å¨æ - æè½½ä¹å beforeUpdate() { }, //çå½å¨æ - æ´æ°ä¹å updated() { }, //çå½å¨æ - æ´æ°ä¹å beforeDestroy() { }, //çå½å¨æ - 鿝ä¹å destroyed() { }, //çå½å¨æ - 鿝宿 activated() { }, //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å //æ¹æ³éå methods: { /** éè¿åæ°è·åä¸å¡ç±»å */ getroute() { //éæ©ä¸å¡ç±»å:1ãæ°å¢ï¼2ãä¿®æ¹ï¼3ãæ¥ç let ids = this.$route.query.id; let tempbusinesstype = this.$route.query.businesstype; let tempoperationtype = this.$route.query.operationtype; // this.userprofile = this.$route.query.routerparam; if (!tempbusinesstype) { this.businesstype = tempbusinesstype; } if (tempbusinesstype == "1") { this.title = 'ä¸å®¶å³å¡è´¹ç³è¯·å'; } else if (tempbusinesstype == "2") { this.title = '伦çä¸å®¶å³å¡è´¹ç³è¯·å'; } else if (tempbusinesstype == "3") { this.title = 'å»å¦ææ¬æ¥éå'; } else if (tempbusinesstype == "4") { this.title = 'æé¡¹è´¹ç¨æ¥éå'; } this.operationtype = tempoperationtype; if (tempoperationtype == 'add') { this.title += 'æ°å»º' this.handleAdd(); } else if (tempoperationtype == 'update') { this.title += 'ä¿®æ¹' this.handleUpdate(ids); } else if (tempoperationtype == 'detail') { this.title += 'æ¥ç' this.handleDetail(ids); } else if (tempoperationtype == 'check') { this.title += 'å®¡æ ¸' this.handleCheck(ids); } }, /** æ°å¢æé®æä½ */ handleAdd() { /** businesstypeï¼1:ä¸å®¶è´¹ï¼2ï¼ä¼¦çä¸å®¶è´¹ */ if (this.businesstype == "1" || this.businesstype == "2" || this.businesstype == "3") { if (this.curCase.id) { this.istrue += 2; this.reset(); this.queryParams.params = {}; this.form.infoid = this.curCase.id; this.form.donorno = this.curCase.donorno; this.form.name = this.curCase.name; //this.initFundApplyForm(); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请å éæ©å·¦æ¹æç®æ¡ä¾ ")]), }); return; } } //åå§å this.reset(); this.fundDetails = []; this.addRow(0); }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.form.donorno = this.curCase.donorno; this.form.infoid = this.curCase.id; // this.title = "ä¿®æ¹è´¹ç¨ç³è¯·"; // this.operationtype = "edit"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; // this.form.recordstate =-1; // this.form.recordstatus = response.data.recordstatus + ""; this.form.name = this.curCase.name; //æç»å¤ç //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] getownFundDetail(id).then((res) => { this.fundDetails = res.data; if (this.fundDetails.length == 0) { for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ this.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ servicesscope: this.fundDetails[m].servicesscope, expensedescribe: this.fundDetails[m].servicesscopename, expense: this.fundDetails[m].expense, remark: this.fundDetails[m].servicesscopename, }); // getdetailsByItemId(this.fundDetails[m].itemid).then((res) => { // let fundmsg = res.data; // fundmsg.forEach((item) => { // this.fundDetails[m].rowfeeblocks.push({ // servicesscope: item.id, // expensedescribe: item.expensedescribe, // expense: item.expense, // remark: item.expensedescribe, // }); // }); // }); } } else { this.addRow(0); } }); }); }, /** æ¥çæé®æä½ */ handleDetail(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.form.donorno = this.curCase.donorno; this.form.infoid = this.curCase.id; this.title = "æ¥çè´¹ç¨ç³è¯·"; this.operationtype = "detail"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; this.form.name = this.curCase.name; let listFundflowparams = { fundid: row.id, fundtype: 2, }; //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] listFundflow(listFundflowparams).then((res) => { this.fundflowList = res.rows; }); getownFundDetail(id).then((res) => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); this.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ expense: this.fundDetails[m].expense, expensedescribe: this.fundDetails[m].servicesscopename, remark: this.fundDetails[m].servicesscope, servicesscope: this.fundDetails[m].servicesscope, }); } if (this.fundDetails.length == 0) { this.addRow(); } }); }); }, handleDelete(row) { const ids = row.id || this.ids; this.$modal .confirm("æ¯å¦ç¡®è®¤å é¤è¯¥è®°å½ï¼") .then(function () { return delFund(ids); }) .then(() => { getownFundDetail(ids).then((res) => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); } }); this.getfundList(); this.$modal.msgSuccess("å 餿å"); }) .catch(() => { }); }, /** 䏿¥æé®æä½ */ handleUp(row) { this.$confirm("æ¯å¦ç¡®è®¤å°ç»è®°è®°å½ä¸æ¥ï¼", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning", }) .then(() => { //æ¥æ¾æ¯å¦åå¨ç»è®°å®æè®°å½ //夿æ¯å¦åå¨ä¸æ¥è®°å½ row.recordstatus = 0; updateFund(row).then((response) => { if (response.code == 200) { this.$message({ type: "success", message: "ç³è¯·æå", }); } else { this.$message({ type: "error", message: "ç³è¯·å¤±è´¥", }); } this.loading = false; }); }) .catch(() => { this.$message({ type: "info", message: "已忶ç³è¯·", }); }); }, /** æäº¤æé® */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { this.formData = this.form; // let totalPreTaxAmount = 0.0; // let totalAfterTaxAmount = 0.0; // let totalAmount = 0.0; //ä¿ååæ ¡éªæ°æ® for (let k = 0; k < this.fundDetails.length; k++) { let tempDetail = this.fundDetails[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡é¡¹ç®æªéæ©ï¼è¯·å éæ©æå¡é¡¹ç®ååæäº¤ä¿åï¼"); return; } if (businesstype == '1' || businesstype == '2') { if (tempDetail.servicesscope == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çè´¹ç¨è¯´ææªéæ©,è¯·éæ©è´¹ç¨è¯´æååæäº¤ä¿åï¼"); return; } if (tempDetail.beneficiaryno == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡äººåå§åä¸ºéæ©,è¯·éæ©äººåååæäº¤ä¿åï¼"); return; } } // //夿åä½ unitSel // try { // let unitIndex = this.unitList.findIndex( // (item) => tempDetail.unitno == item.organizationid // ); // if (unitIndex > -1) { // tempDetail.unitname = this.unitList[unitIndex].organizationname; // } else { // tempDetail.unitname = tempDetail.unitno; // } // } catch { // tempDetail.unitname = tempDetail.unitno; // } } //éä»¶å¤ç let list = this.fileList; if (list.length > 0) { this.form.annexfiles = list.map(item => item.url).join(","); } //å¤çæç» for (let i = 0; i < this.fundDetails.length; i++) { let tempDetail = this.fundDetails[i]; //è·åæå¡é¡¹ç®æç» let tempitemlist = tempDetail.itemlist; let itemIndex = tempitemlist.findIndex( (item) => tempDetail.itemid == item.id ); if (itemIndex > -1) { tempDetail.itemname = tempitemlist[itemIndex].itemName; tempDetail.itemid = tempitemlist[itemIndex].id; } //è·åapplytypenameãæå¡è´¹ç¨å¤§ç±» let applytypeIndex = this.rowfeeItemTypes.findIndex( (item) => tempDetail.applytype == item.value ); if (applytypeIndex > -1) { tempDetail.applytypename = this.rowfeeItemTypes[applytypeIndex].label; tempDetail.subjecttype = this.rowfeeItemTypes[applytypeIndex].subjecttype; tempDetail.subjecttypename = this.rowfeeItemTypes[applytypeIndex].subjecttypename; } this.fundDetails[i] = tempDetail; /* //计ç®ä¸ªç¨ //if (isNaN(parseFloat(tempDetail.taxedamount))) //è·ååæ° this.taxParam.beneficiaryNo = tempDetail.beneficiaryno; this.taxParam.startTime = this.form.createTime.substring(0, 10); // 计ç®ç¨åéé¢ if (tempDetail.taxedamount == undefined || tempDetail.taxedamount == null || tempDetail.taxedamount == 0 || tempDetail.taxedamount == '') { //è·ååæ° this.taxParam.money = tempDetail.amount.toString(); getTaxByBeneFiciaryNo(this.taxParam).then((res) => { if (res.code == 200) { tempDetail.taxamount = res.data; tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount; this.fundDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); } }); } // 计ç®ç¨åéé¢ if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') { //è·ååæ° this.taxParam.money = tempDetail.taxedamount.toString(); getTaxBeforeByAfterMoney(this.taxParam).then((res) => { if (res.code == 200) { tempDetail.taxamount = res.data.nowTax; tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney); this.fundDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); console.log("1", this.amount); } }); } */ } //è´¹ç¨å计 // this.form.pretaxcost = parseFloat(this.totalPreTaxAmount).toFixed(2); // this.form.taxedcost = parseFloat(this.totalAfterTaxAmount).toFixed(2); // this.form.amountrequested = this.totalAmount.toFixed(2); //ä¿åæ°æ® this.loading = true; this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; }); this.form.serviceFunddetails = this.fundDetails; if (this.form.id != null) { //æç®è this.form.donorname = this.curCase.name; // updateFund(this.form).then((response) => { // if (response.code === 200) { // this.loading = false; // for (let m = 0; m < this.fundDetails.length; m++) { // if (this.fundDetails[m].id > 0) { // updateFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败1ï¼" + response.msg); } }); // } else { // addFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败2ï¼" + response.msg); } }); // } // } // this.$modal.msgSuccess("ä¸å®¶å³å¡è´¹ä¿åæåï¼"); // } else { // this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败ï¼" + response.msg); // } // }); } else { this.form.recordstatus = -1; // addorupdateFund(this.form).then((response) => { // if (response.code === 200) { // this.selectDonotor(this.curCase); // } else { // this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败ï¼" + response.msg); // } // }); } addorupdateFund(this.form).then((response) => { if (response.code === 200) { this.selectDonotor(this.curCase); this.$modal.msgSuccess("ç³è¯·åä¿åæåï¼"); } else { this.$modal.msgError("ç³è¯·åä¿å失败ï¼" + response.msg); } }); //å ³éçªå£ // this.loading = false; // this.getfundList(); // this.selectDonotor(this.curCase); this.$router.go(-1); } }); }, // åæ¶æé® cancel() { // this.reset(); this.$router.go(-1); }, // 表åéç½® reset() { this.form = { id: null, applytype: "4", recordstate: -1, userno: null, username: null, deptmentname: null, deptmentno: null, managername: null, infoid: null, donorno: null, delFlag: null, createBy: null, createTime: null, updateBy: null, updateTime: null, familyrelations: null, name: null, remark: null, doname: null, unitname: null, unitno: null, sex: null, idcardtype: null, idcardno: null, phone: null, donorname: null, depositbank: null, bankprovince: null, bankprovincename: null, bankcity: null, bankcityname: null, banktown: null, banktownname: null, branchbankname: null, bankcardno: null, annexbankcard: null, annexregistform: null, consolationmoney: null, servicetypename: null, servicesscope: null, servicesscopename: null, }; this.resetForm("form"); //æ¸ ç©ºéä»¶ this.fileList = [] }, ShowDetailDialog(spoce, showType) { this.expertfrom = "1"; this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.unitno = spoce.row.unitno; this.funddetailForm.unitname = spoce.row.unitname; this.funddetailForm.expertname = ""; this.funddetailForm.expertidcardno = ""; this.funddetailForm.expertunitno = ""; this.funddetailForm.expertunitname = ""; this.funddetailForm.experttitle = ""; this.funddetailForm.expertdepositbank = ""; this.funddetailForm.expertbankcardno = ""; this.showDetailInfoDialog = true; this.showDetailInfooperationtype = showType; }, ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetails[tempIndex]; if (this.showDetailInfooperationtype == "name") { if (this.expertfrom == "1") { //ä»ä¸å®¶å表è·åä¿¡æ¯ this.personlist.map((res) => { if (tempName == res.username) { console.log("éæ©ä¸å®¶", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } }); } else { //ä¿åæ°å¢ä¸å®¶ this.expertform.id = null; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.usertype = "expert"; this.expertform.username = this.funddetailForm.expertname; this.expertform.idcardno = this.funddetailForm.expertidcardno; this.expertform.sex = null; this.expertform.telephone = null; this.expertform.address = null; this.expertform.wbm = null; this.expertform.pym = null; this.expertform.unitno = this.funddetailForm.expertunitno; try { let unitIndex = this.unitList.findIndex( (item) => this.expertform.unitno == item.organizationid ); if (unitIndex > -1) { this.expertform.unitname = this.unitList[unitIndex].organizationname; } else { this.expertform.unitname = this.expertform.unitno; } } catch { this.expertform.unitname = this.expertform.unitno; } this.expertform.title = this.funddetailForm.experttitle; this.expertform.personnelunitno = null; this.expertform.depositbank = this.funddetailForm.expertdepositbank; this.expertform.bankcardno = this.funddetailForm.expertbankcardno; this.expertform.branchbankname = null; this.expertform.remark = null; this.expertform.del_flag = "0"; addExternalperson(this.expertform).then((response) => { if (response.code == 200) { this.$modal.msgSuccess("æ°å¢ä¸å®¶ä¿¡æ¯æåï¼"); listExternalperson().then((res) => { this.personlist = res.rows; console.log("new personlist", this.personlist); //ä»ä¸å®¶å表è·åä¿¡æ¯ this.personlist.map((res) => { if (res.username == this.funddetailForm.expertname) { console.log("æ°å¢ä¸å®¶", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } }); }); } }); } } else if (this.showDetailInfooperationtype == "unit") { singleDetail.unitno = this.funddetailForm.unitno; try { let unitIndex = this.unitList.findIndex( (item) => singleDetail.unitno == item.organizationid ); if (unitIndex > -1) { singleDetail.unitname = this.unitList[unitIndex].organizationname; } else { singleDetail.unitname = singleDetail.unitno; } } catch { singleDetail.unitname = singleDetail.unitno; } } this.fundDetails[tempIndex] = singleDetail; this.showDetailInfoDialog = false; }, //è·åå½åç¨æ·ä¿¡æ¯ getUserProfile() { getUserProfile().then((res) => { this.userprofile = res.data; this.standardlevel = res.data.standardlevel; if (this.userprofile.createBy == "admin" || this.userprofile.createBy == "001" || this.userprofile.createBy == "002") { this.ismanager = true; } else { this.ismanager = false; } // this.form.applytype = this.businesstype; this.form.createTime = new Date(); this.form.username = this.userprofile.nickName; this.form.userno = this.userprofile.userName; this.form.phone = this.userprofile.phonenumber; this.form.deptmentname = this.userprofile.dept.deptName; this.form.deptmentno = this.userprofile.dept.deptId; this.form.managername = this.userprofile.dept.leader; }); }, //è·åè´¹ç¨é¡¹ç®ç夿³¨ä¿¡æ¯ selectedRemark(row) { row.rowfeeblocks.forEach((item, i) => { if (item.servicesscope === row.servicesscope) { row.servicesscopename = item.expensedescribe; if (row.servicesscopename.includes("ç¨å")) { row.amount = 0.0; row.taxamount = 0.0; row.taxedamount = item.expense; } else { row.amount = item.expense; row.taxamount = 0.0; row.taxedamount = 0.0; } this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; }); } }); }, //æ ¡éªæ¶è´¹é¡¹ç®æ¯å¦éå¤ verifyFeeItem(row) { row.itemlist.map((res) => { if (row.itemid === res.id) { row.remark = res.itemDescribe; row.itemcode = res.itemCode; } }); var repeatNum = 0; this.fundDetails.map((res) => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } }); if (repeatNum > 1) { this.$modal.msgWarning("æ¨å·²ç»æäº¤è¿è¯¥æå¡é¡¹ç®äº"); } //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ getdetailsByItemId(row.itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); row.rowfeeblocks = rowfeeblocks; row.servicesscope = null; row.servicesscopename = ""; }); }, // selectamount(row) { this.rowfeeblocks.forEach((item, i) => { if (item.expense === row.amount) { row.remark = item.expensedescribe; } }); }, getUnitList() { listOrganization(3).then((response) => { for (let i = 0; i < response.rows.length; i++) { this.unitList.push({ //organizationid: response.rows[i].organizationid, organizationid: response.rows[i].id, organizationname: response.rows[i].organizationname, }); } }); }, getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then((response) => { this.donatebaseinfoList = response.rows; this.total = response.total; this.loading = false; }); }, //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ selectDonotor(row, column, event) { this.curCase = row; this.getfundList(); }, getfundList() { this.loading = true; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then((response) => { this.loading = false; this.donateconsolationfundList = response.rows; }); }, //å¯¼å ¥ææé¡¹ç® addAllItems() { this.loading = true; this.fundDetails = this.fundDetails.filter( (r) => r.applytype != "" && r.applytype != null ); let listAdd = []; //let listAdd = this.fundDetails; for (let i = 0; i < this.feeItemTypes.length; i++) { for (let j = 0; j < this.feeItemTypes[i].itemDetails.length; j++) { let list = this.fundDetails.filter( (r) => r.applytype == this.feeItemTypes[i].itemType && r.itemid == this.feeItemTypes[i].itemDetails[j].id ); if (list.length == 0) { let rowData = { id: null, orderno: listAdd.length + 1, applytype: this.feeItemTypes[i].itemType, itemid: this.feeItemTypes[i].itemDetails[j].id, itemcode: this.feeItemTypes[i].itemDetails[j].itemCode, recordstatus: "-1", beneficiaryname: "ç¹å»éæ©", unitname: "ç¹å»éæ©", itemlist: this.feeItemTypes[i].itemDetails, rowfeeblocks: null, servicesscope: null, servicesscopename: "" }; //è·åæ¶è´¹é¡¹ç®ç说æä¿¡æ¯ getdetailsByItemId(rowData.itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); rowData.rowfeeblocks = rowfeeblocks; rowData.servicesscope = null; rowData.servicesscopename = ""; }); listAdd.push(rowData); } } } this.fundDetails = listAdd; this.loading = false; // let Outerarr = this.fundDetails; // Outerarr.map((res) => { // let onelist = this.rowfeeItemTypes; // onelist.map((item) => { // //第ä¸å±ä¸ç¸çæ¶ï¼ // if (res.applytype !== item.itemType) { // this.addRow(); // } // }); // }); }, addAll(row, i, arr) { row.itemlist.map((res) => { if (res.id !== row.itemid) { let a = arr.length; this.addRow(); arr[a].itemlist = row.itemlist; arr[a].applytype = row.applytype; arr[a].itemid = res.id; getdetailsByItemId(arr[a].itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); row.rowfeeblocks = rowfeeblocks; }); } }); }, //æ°å¢ä¸è¡ addRow(rowIndex) { let rowData = { orderno: null, id: null, fundid: null, beneficiaryname: "ç¹å»éæ©", beneficiaryno: null, unitname: "ç¹å»éæ©", unitno: null, uintuserno: null, title: null, idcardtype: null, idcardno: null, sex: null, familyrelations: null, phone: null, depositbank: null, bankcardno: null, branchbankname: null, annexbankcard: null, annexregistform: null, applytype: null, itemid: null, itemname: null, itemtype: null, amount: null, prepaidamount: null, taxamount: null, invoicecount: null, taxedamount: null, attachcount: null, remark: null, recordstatus: "-1", delFlag: null, createBy: null, createTime: null, updateBy: null, updateTime: null, uploadflag: null, uploadtime: null, itemlist: [], servicesscope: null, rowfeeblocks: [], }; if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { this.fundDetails.push(rowData); } else { this.fundDetails.splice(rowIndex + 1, 0, rowData); } for (let i = 0; i < this.fundDetails.length; i++) { this.fundDetails[i].orderno = i + 1; } }, //å è½½æå¡é¡¹ç® loadItemType(row) { let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemid = null; // row.itemlist = res.data; // this.$forceUpdate(); // }); }, //è·åä¸å®¶å表 getExternalpersonList() { listExternalperson().then((res) => { this.personlist = res.rows; }); }, //ä¸å®¶äººåå表 selectReporters() { let types = ["expert"]; let templist = []; for (let i = 0; i < types.length; i++) { templist = []; listReportname(types[i]).then((res) => { for (let j = 0; j < res.data.length; j++) { templist.push({ reportName: res.data[j].reportName, reportNo: res.data[j].reportNo, }); } this.expertlist = this.expertlist.concat(templist); }); } }, selectpersonmsg(row) { // if(row.beneficiaryname) this.personlist.map((res) => { if (row.beneficiaryname == res.username) { row.beneficiaryno = res.userno; row.beneficiaryname = res.username; row.bankcardno = res.bankcardno; row.branchbankname = res.branchbankname; row.depositbank = res.depositbank; row.idcardno = res.idcardno; row.phone = res.phonenumber; row.title = res.title; row.unitname = res.unitname; row.unitno = res.unitno; } else { row.beneficiaryno = row.beneficiaryname; } }); }, getUserList() { listUser().then((res) => { this.userlist = res.data; }); }, //çæ¥åºå¯¹åºçè´¹ç¨é¡¹ç® searchItemType(val, scope) { let result = []; if (val != "") { let tempitemlist = scope.row.itemlist; for (let i = 0; i < tempitemlist.length; i++) { let pym = tempitemlist[i].itempinyin; if (pym != null && pym != undefined && pym != "") { if (pym.indexOf(val) != -1) { result.push(tempitemlist[i]); } } } scope.row.itemlist = result; } else { getItemNames(scope.row.applytype).then((res) => { scope.row.itemlist = res.data; //this.$set(this.fundDetails, rowindex, row); }); } }, deleteRows(row, index, rows) { this.$confirm("å 餿°æ®åå°ä¸è½æ¢å¤ï¼ç¡®è®¤è¦å é¤å?", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "success", }) .then(() => { if (row.id !== null) { delFunddetail(row.id).then((res) => { if (res.code === 200) { this.$confirm("å 餿°æ®æå", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "success", }).then(() => { this.$set(rows, rows.splice(index, 1)); getownFundDetail(this.form.id).then((res) => { this.$set(this.fundDetails, res.data); this.sumTotalFee(); // this.fundDetails = res.data }); }); } // getownFundDetail(this.form.id).then(res=>{ // this.$set(this.fundDetails,res.data) // this.fundDetails = res.data // }) }); } else { rows.splice(index, 1); this.sumTotalFee(); } }) .catch(() => { //å ç¹åæ¶çæç¤º }); //å ¨é¨å é¤åæ·»å 䏿¡æ°è¡ console.log("this.fundDetails.length", this.fundDetails.length); if (this.fundDetails.length == 1) { this.addRow(0); } }, //计ç®ä¸ªç¨ calculateTax() { }, //è®¡ç®æ»éé¢ sumTotalFee(row) { let allSum = 0; if (this.form.applytype != null) { for (let i = 0; i < this.fundDetails.length; i++) { let totalFee = 0; let taxFee = 0; if (this.form.applytype == 1 || this.form.applytype == 2) { //计ç®å½åæ¥éå 容费ç¨å计 if (!isNaN(parseFloat(this.fundDetails[i].amount))) { totalFee += parseFloat(this.fundDetails[i].amount); taxFee += parseFloat(this.fundDetails[i].amount); } if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) { totalFee -= parseFloat(this.fundDetails[i].taxamount); taxFee -= parseFloat(this.fundDetails[i].taxamount); } } else if (this.form.applytype == 3 || this.form.applytype == 4) { //åä»·*æ°é=ç¨åéé¢ if ( !isNaN(parseFloat(this.fundDetails[i].price)) && !isNaN(parseFloat(this.fundDetails[i].quantity)) ) { totalFee += parseFloat(this.fundDetails[i].price) * parseFloat(this.fundDetails[i].quantity); this.fundDetails[i].amount = totalFee; } } //ç¨åãç¨åéè¦ç¬ç«å½å ¥ // if (!isNaN(parseFloat(taxFee))) { // this.fundDetails[i].taxedamount = taxFee.toFixed(2); // } allSum += totalFee; } } // this.form.amountrequested = allSum.toFixed(2); // this.$forceUpdate(); }, //è·åè´¹ç¨ç±»å getCurFundType() { getFundTypeAll(this.businesstype).then((res) => { console.log("rowfeeItemTypes", res); let dataList = res.data; this.feeItemTypes = dataList; this.rowfeeItemTypes = []; for (let m = 0; m < dataList.length; m++) { this.rowfeeItemTypes.push({ value: dataList[m].itemType, label: dataList[m].itemTypeName, subjecttype: dataList[m].subjecttype, subjecttypename: dataList[m].subjecttypename, }); } }); }, getitemlist(rowindex, row) { let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; this.$set(this.fundDetails, rowindex, row); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemlist = res.data; // this.$set(this.fundDetails, rowindex, row); // }); }, mixExport(scope) { this.dayin(scope.row.id); //this.totaldayin(id); }, //ä¸å®¶è´¹å³å¡æå° dayin(id) { getdownloadLW(id).then((res) => { if (res.downloadUrl) { var fileUrl = res; //è·åå½åç½å var urlBase = process.env.VUE_APP_BASE_API; var curWWWPath = window.document.location.href; var pos = curWWWPath.indexOf(window.document.location.pathname); // å建aæ ç¾ var aEle = document.createElement("a"); aEle.href = curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; aEle.click(); this.$alert("ä¸è½½æå", "æç¤º", { confirmButtonText: "ç¡®å®", type: "success", }); } }); }, //æ±æ»æå° totaldayin(e) { // const id =this.row.id getdownloadBX(e).then((res) => { if (res.downloadUrl) { var fileUrl = res; //è·åå½åç½å var urlBase = process.env.VUE_APP_BASE_API; var curWWWPath = window.document.location.href; var pos = curWWWPath.indexOf(window.document.location.pathname); // å建aæ ç¾ var aEle = document.createElement("a"); aEle.href = curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; aEle.click(); this.$alert("ä¸è½½æå", "æç¤º", { confirmButtonText: "ç¡®å®", type: "success", }); } }); }, //æä»¶ä¸ä¼ handleUploadError() { }, /** ä¸è½½æä»¶æé®æä½ */ downFile(item) { const url = process.env.VUE_APP_BASE_API + item.url var a = document.createElement('a'); var event = new MouseEvent('click'); a.download = item.name; a.href = url; a.dispatchEvent(event); }, remove(file) { this.fileList.splice(this.fileList.indexOf(file), 1) }, handleExceed() { this.$message.error(`ä¸ä¼ æä»¶æ°éä¸è½è¶ è¿ ${5} 个!`); }, //æä»¶ä¸ä¼ æååè° uploadSccess(response, file, fileList) { //è·åéä»¶ä¿¡æ¯ä½ç½® if (response.code == 200) { this.form.filename = file.raw.name; this.$modal.msgSuccess(response.msg); this.fileList.push({ name: response.fileName, url: response.fileName }); } else { console.log(response.msg);; } }, }, }; </script> <style lang="scss" scoped> .Modifydetailscla { padding: 10px; .boxdiv { font-size: 18px; padding: 0 30px; padding-bottom: 60px; .top-text { text-align: center; font-size: 23px; font-weight: 600; margin: 20px 0; margin-bottom: 50px; } .dialog-footer { text-align: left; margin-top: 10px; } } } .upload-demo { text-align: center; } .pdfimg { display: flex; // text-align: center; width: 100%; height: 600px; .box-pdf { width: 200px; padding-top: 20px; margin-right: 30px; border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. } .pdftit { width: 200px; padding: 20px; font-size: 18px; } .pdftit:hover { background: #c0cef7; } .pdfimgmin { width: 60%; img { width: 100%; } } .pdfimgmins { font-size: 28px; width: 60%; text-align: center; } } ::v-deep .el-input--medium .el-input__inner { height: 36px; line-height: 36px; text-align: center; } </style> src/views/project/fund/overheadcosts/index.vue
@@ -4,8 +4,8 @@ <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="70px"> <el-row align="left"> <el-col :span="6"> <el-form-item label="å§å" prop="name"> <el-input v-model="queryParams.name" placeholder="请è¾å ¥å§å" clearable size="small" <el-form-item label="ç»å人" prop="name"> <el-input v-model="queryParams.name" placeholder="请è¾å ¥ç»å人" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> </el-col> @@ -28,18 +28,6 @@ <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:medicalfund:add']">å建ç³è¯·å</el-button> </el-col> <el-col :span="9"> <el-form-item label="æç®ç¼å·"> <el-input v-model="curCase.donorno" :disabled="true"></el-input> </el-form-item> </el-col> <el-col :span="9"> <el-form-item label="å§å"> <el-input v-model="curCase.name" :disabled="true"></el-input> </el-form-item> </el-col> <el-col> </el-col> </el-row> <el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> @@ -195,7 +183,7 @@ </template> </el-table-column> <el-table-column prop="beneficiaryno" align="center" label="å§å" width="120" v-if="form.applytype != 3"> <el-table-column prop="beneficiaryno" align="center" label="å§å" width="120" v-if="form.applytype=='1' || form.applytype=='2'"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname }}</el-button> @@ -536,7 +524,7 @@ data() { //è¿éåæ¾æ°æ® return { currentApplyType: "4", businesstype: "4", // é®ç½©å± loading: true, // 导åºé®ç½©å± @@ -582,10 +570,7 @@ }, //æç®æ¡ä¾åè¡¨æ°æ® // donationCaseTableData:[], donatebaseinfoList: [], //å½åéä¸æç®æ¡ä¾ curCase: {}, //æ¯å¦æ¾ç¤ºè´¹ç¨ç³è¯·å¼¹çª dialogOpen: false, // title: "", @@ -805,7 +790,7 @@ /** æ°å¢æé®æä½ */ handleAdd() { this.$router.push({ path: "/finance/funddetail/", path: "/finance/fundcontext/", query: { id: 0, businesstype: "4", operationtype: "add" } }); @@ -830,7 +815,7 @@ /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.$router.push({ path: "/finance/funddetail/", path: "/finance/fundcontext/", query: { id: row.id, businesstype: 4, operationtype: "edit" } }); @@ -845,7 +830,6 @@ const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; this.form.name = this.curCase.name; //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] @@ -862,15 +846,13 @@ /** æ¥çæé®æä½ */ handleDetail(row) { this.$router.push({ path: "/finance/funddetail/", path: "/finance/fundcontext/", query: { id: row.id, businesstype: 4, operationtype: "detail" } }); this.isopen = 0; this.reset(); this.queryParams.params = {}; this.form.donorno = this.curCase.donorno; this.form.infoid = this.curCase.id; this.dialogOpen = true; this.title = "æ¥çè´¹ç¨ç³è¯·"; this.dialogType = "detail"; @@ -878,10 +860,9 @@ getFund(id).then((response) => { this.form = response.data; this.form.name = this.curCase.name; let listFundflowparams = { fundid: row.id, fundtype: 2, fundtype: 4, }; //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] @@ -920,8 +901,7 @@ delFunddetail(listdetails[i].id); } }); // this.getList(); this.getfundList(); this.getList(); this.$modal.msgSuccess("å 餿å"); }) .catch(() => { }); @@ -967,18 +947,14 @@ this.form.annexbankcard = list.map(item => item.url).join(","); } this.form.donorname = this.curCase.name; this.form.pretaxcost = parseFloat(this.form.amountrequested).toFixed( 2 ); if (this.form.id != null) { updateFund(this.form).then((response) => { this.getfundList(); this.dialogOpen = false; this.getList(); this.selectDonotor(this.curCase); this.$modal.msgSuccess("ä¿®æ¹æå"); this.loading = false; for (let m = 0; m < this.fundDetails.length; m++) { @@ -1043,20 +1019,14 @@ } }); }, /** æ¥è¯¢æç®äººéæ °é®éå表 */ /** æ¥è¯¢å表 */ getList() { this.loading = true; this.queryParams.params = {}; if (null != this.daterangeReporttime && "" != this.daterangeReporttime) { this.queryParams.params["beginReporttime"] = this.daterangeReporttime[0]; this.queryParams.params["endReporttime"] = this.daterangeReporttime[1]; } // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); listDonatebaseinfo(this.queryParams).then((response) => { this.donatebaseinfoList = response.rows; this.total = response.total; this.reset(); listFund(this.fundQueryParam).then((response) => { this.loading = false; this.donateconsolationfundList = response.rows; }); }, @@ -1067,20 +1037,7 @@ this.total = response.total; this.loading = false; }); }, getfundList() { this.loading = true; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then((response) => { this.loading = false; this.donateconsolationfundList = response.rows; }); }, }, // åæ¶æé® cancel() { @@ -1296,7 +1253,7 @@ //è·åè´¹ç¨ç±»å getCurFundType() { getFundTypeAll(this.currentApplyType).then((res) => { getFundTypeAll(this.businesstype).then((res) => { let dataList = res.data; this.fundtypeArrAll = dataList; this.fundtypeArr = []; @@ -1500,12 +1457,11 @@ //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ created() { this.getList(); this.getBaseInfoList(); this.getCurFundType(); this.getlistUser(); // this.getUnitList(); this.getUnitList(); this.getList(); }, //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå ç´ ï¼ src/views/project/funddetail/index.vue
@@ -1,1532 +1,301 @@ <!-- --> <template> <div class="app-container"> <!-- æ·»å æä¿®æ¹è´¹ç¨ç³è¯·å --> <el-form style="height: 550px; overflow-y: auto; overflow-x: hidden" ref="form" :model="form" label-width="120px" :rules="rules"> <el-row style="text-align: left"> <el-col :span="5"> <el-form-item label="ç³è¯·æ¥æ" prop="createTime"> <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="ç³è¯·æ¥æ"> </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç»å人" prop="username"> <el-select v-model="form.username" placeholder="ç³è¯·äºº" clearable filterable allow-create style="width: 100%"> <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="æå±ç»å«" prop="deptmentname"> <el-input v-model="form.deptmentname" placeholder="请è¾å ¥æå±ç»å«" clearable /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç»é¿" prop="managername"> <el-input v-model="form.managername" placeholder="请è¾å ¥ç»é¿" clearable /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <!-- <el-col :span="7"> <el-form-item label="å·¥ä½åä½" prop="unitno"> <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> </el-form-item> </el-col> --> <el-col :span="5"> <el-form-item label="è´¹ç¨ç±»å"> <el-radio v-model="form.applytype" label="true">æé¡¹è´¹ç¨ç³è¯·</el-radio> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="ç³è¯·è¯´æ" prop="remark"> <el-input v-model="form.remark" placeholder="ç³è¯·è¯´æ" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="èç³»çµè¯" prop="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥èç³»çµè¯" /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <!-- <el-col :span="5"> <el-form-item label="å计éé¢" prop="amountrequested"> <el-input v-model="form.amountrequested" placeholder="ç³è¯·éé¢" :disabled="true" /> </el-form-item> </el-col> --> <el-col :span="5"> <el-form-item label="ç³è¯·éé¢" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="åºç¼´ç¨" prop="taxcost"> <el-input v-model="form.taxcost" placeholder="åºç¼´ç¨éé¢å计" :disabled="true" /> </el-form-item> </el-col> <!-- <el-col :span="5"> <el-form-item label="ç¨åéé¢" prop="pretaxcost"> <el-input v-model="form.taxedcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col>--> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请è¾å ¥æç®è å§å" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="ç³è¯·ç¶æ" prop="recordstatus"> <!-- <el-input v-model="form.recordstatus" placeholder="å®¡æ ¸æè§"/> --> <el-select v-model="form.recordstatus" placeholder="è¯·éæ©å®¡æ ¸ç¶æ" clearable size="small" :disabled="true"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px"> <el-row style="margin-bottom: 10px"> <el-col :span="4"> <el-button @click.native.prevent="addAllItems" type="primary" size="small"> å¯¼å ¥æå¡é¡¹ç® </el-button> </el-col> </el-row> <el-table :data="fundDetails" v-loading="loading" border highlight-current-row> <el-table-column prop="orderno" align="center" label="åºå·" width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="åºå·" /> </template> </el-table-column> <el-table-column prop="applytype" align="center" label="æå¡è´¹ç¨ç±»å" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="æå¡è´¹ç¨ç±»å" @change="loadItemType(scope.row)"> <el-option v-for="dict in rowfeeItemTypes" :key="dict.index" :label="dict.label" :value="dict.value"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemid" align="center" label="æå¡é¡¹ç®åç§°" width="260"> <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="æå¡é¡¹ç®åç§°" filterable @change="verifyFeeItem(scope.row)" :filter-method="(val) => searchItemType(val, scope)"> <el-option v-for="dict in scope.row.itemlist" :key="dict.index" :label="dict.itemName" :value="dict.id"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemcode" align="center" label="项ç®ç¼å·" show-overflow-tooltip="" v-if="false"> </el-table-column> <el-table-column prop="servicesscope" align="center" label="è´¹ç¨è¯´æ" width="180"> <template slot-scope="scope"> <el-select v-model="scope.row.servicesscope" placeholder="è´¹ç¨è¯´æ" clearable allow-create filterable @change="selectedRemark(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope"></el-option> </el-select> </template> </el-table-column> <el-table-column v-if="this.ismanager == true" prop="amount" align="center" label="ç¨åéé¢" width="120"> <template slot-scope="scope"> <el-select v-model="scope.row.amount" placeholder="ç¨åéé¢" clearable filterable allow-create @change="selectamount(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.expensedescribe" :label="dict.expense" :value="dict.expense"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="ç¨åéé¢" width="120" v-if="this.ismanager == true"> <!-- v-if="form.applytype != '3'"ä¸å --> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="ç¨åéé¢" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="å§å" width="100" v-if="form.applytype != 3"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname }}</el-button> <!-- <el-select filterable allow-create ref="getReportname" default-first-option @change="selectpersonmsg(scope.row)" v-model="scope.row.beneficiaryname" placeholder="è¯·éæ©" > <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > </el-option> </el-select> --> </template> </el-table-column> <el-table-column prop="unitno" align="center" label="åä½åç§°" width="220"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> <!-- <el-select v-model="scope.row.unitno" placeholder="åä½" clearable filterable allow-create > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> --> </template> </el-table-column> <el-table-column prop="quantity" align="center" label="æ°é" width="120" v-if="form.applytype == '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.quantity" placeholder="æ°é" @blur="(val) => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="price" align="center" label="ä»·æ ¼" width="120" v-if="form.applytype == '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="ä»·æ ¼" @blur="(val) => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="remark" align="center" label="夿³¨" width="210" v-if="form.applytype == '4'"> <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="夿³¨" /> </template> </el-table-column> <el-table-column prop="title" align="center" label="èç§°" width="120" v-if="form.applytype != '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.title" placeholder="èç§°" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份è¯å·" width="200" v-if="form.applytype != '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份è¯å·" /> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="弿·é¶è¡" width="200" v-if="form.applytype != '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="弿·é¶è¡" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="é¶è¡å¡å·" width="210" v-if="form.applytype != '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¡å·" /> </template> </el-table-column> <el-table-column fixed="right" align="center" label="æä½" width="180" v-if="operationtype == 'edit'"> <template slot-scope="scope"> <el-button type="text" size="mini" @click="addRow(scope.$index)">æ°å¢</el-button> <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, fundDetails) " type="text" size="small"> å é¤ </el-button> </template> </el-table-column> </el-table> </el-row> <!-- <el-row> <el-col :span="7"> <el-form-item label="颿¯éé¢" prop="prepaidamount"> <el-input v-model="form.prepaidamount" placeholder="ç³è¯·éé¢" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="7"> <el-form-item label="OPOä¸å¿ç¾å" prop="opochecker"> <el-input v-model="form.opochecker" placeholder="opoä¸å¿ç¾å" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="è´¢å¡å¯é¢é¿" prop="finvicepresident"> <el-input v-model="form.finvicepresident" placeholder="è´¢å¡å¯é¢é¿" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="ä¸å¡å¯é¢é¿" prop="busvicepresident"> <el-input v-model="form.busvicepresident" placeholder="ä¸å¡å¯é¢é¿" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="åå ¬å®¤ä¸»ä»»" prop="officedirector"> <el-input v-model="form.officedirector" placeholder="请è¾å ¥åå ¬å®¤ä¸»ä»»" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="è´¢å¡é¨è´è´£äºº" prop="financedirector"> <el-input v-model="form.financedirector" placeholder="请è¾å ¥è´¢å¡é¨è´è´£äºº" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="è´¢å¡å®¡æ ¸" prop="financechecher"> <el-input v-model="form.financechecher" placeholder="请è¾å ¥è´¢å¡å®¡æ ¸" /> </el-form-item> </el-col> </el-row> --> <el-row> <el-col :span="12"> <el-form-item label="è´¹ç¨ç³è¯·éä»¶" align="left" prop="annexbankcard"> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled='operationtype == "detail"' :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled='operationtype == "detail"' size="small" type="primary">ä¸ä¼ </el-button> </el-upload> </el-form-item> </el-col> </el-row> <el-row v-if="operationtype == 'detail'"> <el-table :data="fundflowList" border> <el-table-column label="å®¡æ ¸äºº" align="center" width="120" prop="checkusername" /> <el-table-column label="å®¡æ ¸æ¥æ" align="center" width="160" prop="createTime" /> <el-table-column label="å®¡æ ¸ç»æ" align="center" width="200" prop="flowconclusion"><template slot-scope="scope"><span v-if="scope.row.flowconclusion == 1">éè¿</span><span v-if="scope.row.flowconclusion == 2">ä¸éè¿</span></template> </el-table-column> <el-table-column label="å®¡æ ¸å¤æ³¨" align="center" prop="flowcontent" /> </el-table> </el-row> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="ä¸å®¶å§å" prop="beneficiaryname"> <el-input v-model="queryParams.beneficiaryname" placeholder="请è¾å ¥ä¸å®¶å§å" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="å·¥ä½åä½" prop="uintname"> <el-input v-model="queryParams.uintname" placeholder="请è¾å ¥å·¥ä½åä½" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="è´¹ç¨ç±»å«" prop="applytype"> <el-select v-model="queryParams.applytype" placeholder="è¯·éæ©è´¹ç¨ç±»å«" clearable size="small"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item> <el-form-item label="项ç®åç§°" prop="itemname"> <el-input v-model="queryParams.itemname" placeholder="请è¾å ¥é¡¹ç®åç§°" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="项ç®ç±»å«" prop="itemtype"> <el-select v-model="queryParams.itemtype" placeholder="è¯·éæ©é¡¹ç®ç±»å«" clearable size="small"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item> <el-form-item label="è®°å½ç¶æ" prop="recordstatus"> <el-select v-model="queryParams.recordstatus" placeholder="è¯·éæ©è®°å½ç¶æ" clearable size="small"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item> <el-form-item label="ç»å人" prop="createBy"> <el-input v-model="queryParams.createBy" placeholder="请è¾å ¥å建人" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="ç³è¯·æ¥æ" prop="createTime"> <el-date-picker clearable size="small" v-model="queryParams.createTime" type="date" value-format="yyyy-MM-dd" placeholder="éæ©åå»ºæ¥æ"> </el-date-picker> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="operationtype == 'edit'">ä¿ å</el-button> <!-- <el-button type="success" @click="print">æ å°</el-button> --> <el-button @click="cancel">å æ¶</el-button> </div> <el-dialog :visible.sync="showDetailInfoDialog" :close-on-click-modal="false" :title="'å¯¼å ¥ä¿¡æ¯'" width="500px" style="text-align: center" v-loading="loading"> <el-form ref="funddetailForm" :model="funddetailForm"> <el-row> <el-col :span="24" v-if="showDetailInfoDialogType == 'name'"> <el-form-item label="è¯·éæ©ä¸å®¶ä¿¡æ¯ï¼" prop="expertfrom"> <el-radio-group v-model="expertfrom" style="margin-bottom: 0"> <el-radio label="1">ä¸å®¶åº</el-radio> <el-radio label="2">æ°å¢ä¸å®¶</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoDialogType == 'name' && expertfrom == '1'"> <el-form-item label="ä¸å®¶å§å" prop="beneficiaryname" label-width="80px"> <el-select filterable allow-create ref="beneficiaryname" default-first-option v-model="funddetailForm.beneficiaryname" placeholder="è¯·éæ©" style="width: 100%"> <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoDialogType == 'unit'"> <el-form-item label="åä½åç§°" prop="unitno" label-width="80px"> <el-select v-model="funddetailForm.unitno" placeholder="åä½åç§°" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="ä¸å®¶å§å" prop="expertname" label-width="80px"> <el-input v-model="funddetailForm.expertname" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="è ç§°" prop="experttitle" label-width="80px"> <el-select v-model="funddetailForm.experttitle" placeholder="å¿ å¡«é¡¹"> <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="身份è¯å·" prop="expertidcardno" label-width="80px"> <el-input v-model="funddetailForm.expertidcardno" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> </el-row> <!-- <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="人åç±»å«" prop="usertype" label-width="80px"> <el-select v-model="funddetailForm.usertype" placeholder="å¿ å¡«é¡¹"> <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:funddetail:add']">æ°å¢</el-button> </el-col> <el-col :span="1.5"> <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['project:funddetail:edit']">ä¿®æ¹</el-button> </el-col> <el-col :span="1.5"> <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['project:funddetail:remove']">å é¤</el-button> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" v-hasPermi="['project:funddetail:export']">导åº</el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table v-loading="loading" :data="funddetailList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="ä¸å®¶å§å" width="120" align="center" prop="beneficiaryname" /> <el-table-column label="è´¹ç¨ç±»å«" align="center" prop="applytype" /> <el-table-column label="项ç®ç±»å«" align="center" prop="itemtype" /> <el-table-column label="è´¹ç¨é¡¹ç®åç§°" align="left" prop="itemname" /> <el-table-column label="è´¹ç¨éé¢" align="center" prop="amount" /> <el-table-column label="æ£ç¨éé¢" align="center" prop="taxamount" /> <el-table-column label="ç¨åéé¢" align="center" prop="taxedamount" /> <!-- <el-table-column label="ä¸å®¶åä½" align="center" prop="uintname" /> <el-table-column label="è¯ä»¶å·ç " align="center" prop="idcardno" /> <el-table-column label="ä¸å®¶çµè¯" align="center" prop="phone" /> <el-table-column label="ç¶æ" align="center" prop="recordstatus" /> <el-table-column label="ç»å人" align="center" prop="createby" /> <el-table-column label="ç³è¯·æ¥æ" align="center" prop="createtime" /> --> <el-table-column label="夿³¨" align="left" prop="remark" /> <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['project:funddetail:edit']">ä¿®æ¹</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['project:funddetail:remove']">å é¤</el-button> </template> </el-table-column> </el-table> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <!-- æ·»å æä¿®æ¹è´¹ç¨ç³è¯·æç»å¯¹è¯æ¡ --> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="åä½åç§°" prop="expertunitno" label-width="80px"> <el-select v-model="funddetailForm.expertunitno" placeholder="åä½åç§°" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> <el-col :span="5"><el-form-item label="è´¹ç¨ç³è¯·ä¸»è¡¨ID" prop="fundid"> <el-input v-model="form.fundid" placeholder="请è¾å ¥è´¹ç¨ç³è¯·ä¸»è¡¨ID" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="æ¶ç人å§å 家屿ä¸å®¶" prop="beneficiaryname"> <el-input v-model="form.beneficiaryname" placeholder="请è¾å ¥æ¶ç人å§å 家屿ä¸å®¶" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="æ¶ç人ç¼å·" prop="beneficiaryno"> <el-input v-model="form.beneficiaryno" placeholder="请è¾å ¥æ¶ç人ç¼å·" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="å·¥ä½åä½" prop="uintname"> <el-input v-model="form.uintname" placeholder="请è¾å ¥å·¥ä½åä½" /> </el-form-item></el-col> </el-row> <el-row> <el-col :span="5"><el-form-item label="å·¥ä½åä½ç¼å·" prop="uintno"> <el-input v-model="form.uintno" placeholder="请è¾å ¥å·¥ä½åä½ç¼å·" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="å·¥ä½åä½ç¨æ·ç¼å·" prop="uintuserno"> <el-input v-model="form.uintuserno" placeholder="请è¾å ¥å·¥ä½åä½ç¨æ·ç¼å·" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="è¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType" prop="idcardtype"> <el-select v-model="form.idcardtype" placeholder="è¯·éæ©è¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item></el-col> <el-col :span="5"><el-form-item label="è¯ä»¶å·ç " prop="idcardno"> <el-input v-model="form.idcardno" placeholder="请è¾å ¥è¯ä»¶å·ç " /> </el-form-item></el-col> </el-row> <el-row> <el-col :span="5"><el-form-item label="æ§å« æ ¹æ®åå ¸sys_user_sex" prop="sex"> <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å« æ ¹æ®åå ¸sys_user_sex"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item></el-col> <el-col :span="5"><el-form-item label="ä¸æèµ è å ³ç³» æ ¹æ®åå ¸sys_FamilyRelation" prop="familyrelations"> <el-input v-model="form.familyrelations" placeholder="请è¾å ¥ä¸æèµ è å ³ç³» æ ¹æ®åå ¸sys_FamilyRelation" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="èç³»çµè¯" prop="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥èç³»çµè¯" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="弿·é¶è¡" prop="depositbank"> <el-input v-model="form.depositbank" placeholder="请è¾å ¥å¼æ·é¶è¡" /> </el-form-item></el-col> </el-row> <el-row> <el-col :span="5"> <el-form-item label="å¡å·" prop="bankcardno"> <el-input v-model="form.bankcardno" placeholder="请è¾å ¥å¡å·" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="æ¯è¡åç§°" prop="branchbankname"> <el-input v-model="form.branchbankname" placeholder="请è¾å ¥æ¯è¡åç§°" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="é¶è¡å¡ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" prop="annexbankcard"> <el-input v-model="form.annexbankcard" placeholder="请è¾å ¥é¶è¡å¡ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="ç»è®°è¡¨ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" prop="annexregistform"> <el-input v-model="form.annexregistform" placeholder="请è¾å ¥ç»è®°è¡¨ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" /> </el-form-item></el-col> </el-row> <el-row> <el-col :span="5"><el-form-item label="è´¹ç¨ç±»å« è§åå ¸sys_SubjectType" prop="applytype"> <el-select v-model="form.applytype" placeholder="è¯·éæ©è´¹ç¨ç±»å« è§åå ¸sys_SubjectType"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item></el-col> <el-col :span="5"><el-form-item label="项ç®ID" prop="itemid"> <el-input v-model="form.itemid" placeholder="请è¾å ¥é¡¹ç®ID" /> </el-form-item></el-col> <el-col :span="5"> <el-form-item label="项ç®åç§°" prop="itemname"> <el-input v-model="form.itemname" placeholder="请è¾å ¥é¡¹ç®åç§°" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="项ç®ç±»å«" prop="itemtype"> <el-select v-model="form.itemtype" placeholder="è¯·éæ©é¡¹ç®ç±»å«"> <el-option label="è¯·éæ©åå ¸çæ" value="" /> </el-select> </el-form-item></el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="弿·é¶è¡" prop="expertdepositbank" label-width="80px"> <el-input v-model="funddetailForm.expertdepositbank" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="é¶è¡å¡å·" prop="expertbankcardno" label-width="80px"> <el-input v-model="funddetailForm.expertbankcardno" placeholder="å¿ å¡«é¡¹" /> </el-form-item> </el-col> <el-col :span="5"><el-form-item label="ç³è¯·éé¢" prop="amount"> <el-input v-model="form.amount" placeholder="请è¾å ¥ç³è¯·éé¢" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="颿¯éé¢" prop="prepaidamount"> <el-input v-model="form.prepaidamount" placeholder="请è¾å ¥é¢æ¯éé¢" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="åç¥¨å¼ æ°" prop="invoicecount"> <el-input v-model="form.invoicecount" placeholder="请è¾å ¥åç¥¨å¼ æ°" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="éä»¶å¼ æ°" prop="attachcount"> <el-input v-model="form.attachcount" placeholder="请è¾å ¥éä»¶å¼ æ°" /> </el-form-item></el-col> </el-row> <el-row> <el-col :span="5"><el-form-item label="夿³¨" prop="remark"> <el-input v-model="form.remark" placeholder="请è¾å ¥å¤æ³¨" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="è®°å½ç¶æ"> <el-radio-group v-model="form.recordstatus"> <el-radio label="1">è¯·éæ©åå ¸çæ</el-radio> </el-radio-group> </el-form-item></el-col> <el-col :span="5"> <el-form-item label="ä¸ä¼ æ å¿" prop="uploadflag"> <el-input v-model="form.uploadflag" placeholder="请è¾å ¥ä¸ä¼ æ å¿" /> </el-form-item></el-col> <el-col :span="5"><el-form-item label="ä¸ä¼ æ¶é´" prop="uploadtime"> <el-date-picker clearable size="small" v-model="form.uploadtime" type="date" value-format="yyyy-MM-dd" placeholder="éæ©ä¸ä¼ æ¶é´"> </el-date-picker> </el-form-item></el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showDetailInfoDialog = false">å æ¶</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">ç¡® å®</el-button> </span> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">ç¡® å®</el-button> <el-button @click="cancel">å æ¶</el-button> </div> </el-dialog> </div> </template> <script> //è¿éå¯ä»¥å¯¼å ¥å ¶ä»æä»¶ï¼æ¯å¦ï¼ç»ä»¶ï¼å·¥å ·jsï¼ç¬¬ä¸æ¹æä»¶jsï¼jsonæä»¶ï¼å¾çæä»¶ççï¼ //ä¾å¦ï¼import ãç»ä»¶åç§°ã from 'ãç»ä»¶è·¯å¾ã'; import { listDonatebaseinfo, getDonatebaseinfo } from "@/api/project/donatebaseinfo"; import { onelistFund, listFund, getFund, delFund, addFund, updateFund, exportFund, getdownloadLW, getdownloadSH, getdownloadSS, getdownloadYX, getdownloadBX, addorupdateFund, getdetailsByItemId } from "@/api/project/fund"; import { onelistFunds, listFunddetails, listFunddetail, getFunddetail, delFunddetail, addFunddetail, getownFundDetail, updateFunddetail, exportFunddetail, getItemNames, getFundType, getFundTypeAll, listcountItem, getDataBybeneficiaryNo, getTaxByBeneFiciaryNo, getTaxBeforeByBeneFiciaryNo, getTaxationByBeneFiciaryNo, getTaxBeforeByAfterMoney } from "@/api/project/funddetail"; import { listFundflow } from "@/api/project/fundflow"; import { listOrganization, getOrganization, listReportname, listUser } from "@/api/project/organization"; import { listExternalperson, getExternalperson, getInfoBytheUserNo, delExternalperson, addExternalperson, updateExternalperson, exportExternalperson } from "@/api/project/externalperson"; import { getUserProfile } from "@/api/system/user"; import Li_area_select from "@/components/Address"; import OrgSelecter from "@/views/project/components/orgselect"; import { getToken } from "@/utils/auth"; import { listFunddetail, getFunddetail, delFunddetail, addFunddetail, updateFunddetail, exportFunddetail } from "@/api/project/funddetail"; export default { //importå¼å ¥çç»ä»¶éè¦æ³¨å ¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ components: { Li_area_select, OrgSelecter, }, name: "fundApply", dicts: [ //"sys_consolationfundlevel", //"sys_OrganizationType", "sys_DonationStatus", //"sys_depositbank", //"sys_FamilyRelation", //"sys_IDType", //"sys_ConsolationType", //"sys_fund_type", //"sys_finsubject", //"sys_financeitemtype", //"sys_expensetype", "sys_recordstatus", "sys_professionaltitle" ], name: "Funddetail", data() { //è¿éåæ¾æ°æ® return { // é®ç½©å± loading: false, loading: true, // 导åºé®ç½©å± exportLoading: false, //æ¥è¯¢åæ° // é䏿°ç» ids: [], // éå个ç¦ç¨ single: true, // éå¤ä¸ªç¦ç¨ multiple: true, // æ¾ç¤ºæç´¢æ¡ä»¶ showSearch: true, // æ»æ¡æ° total: 0, // è´¹ç¨ç³è¯·æç»è¡¨æ ¼æ°æ® funddetailList: [], // å¼¹åºå±æ é¢ title: "", // æ¯å¦æ¾ç¤ºå¼¹åºå± open: false, // æ¥è¯¢åæ° queryParams: { organizationname: null, organizationtype: null, pageNum: 1, pageSize: 10, name: null, idcardno: null, residenceprovince: null, residencecity: null, residencetown: null, recordstate: null, treatmenthospitalname: null, donorno: null, reportername: null, reporttime: null, }, fundQueryParam: { pageNum: 1, pageSize: 100, infoid: null, applytype: "4", beneficiaryname: null, uintname: null, applytype: null, itemname: null, itemtype: null, amount: null, recordstatus: null, createBy: null, createTime: null, uploadflag: null, uploadtime: null }, expertQueryParam: { pageNum: 1, pageSize: 10000, userno: null, username: null, usertype: null, }, //计ç®ä¸ªç¨åæ° taxParam: { beneficiaryNo: '', money: '0', startTime: '', }, // 表ååæ° form: {}, total: 0, //ç³è¯·åç±»å businesstype: null, //æä½ç±»å operationtype: "edit", //ææäººå表 personlist: [], // amount: 0.00, //ä¸å®¶å表 expertlist: [], //ä¸å®¶è´¹éæ©ï¼1æ¯ä¸å®¶åºï¼2æ¯æ°å¢ expertfrom: "1", // è¡¨åæ ¡éª rules: { username: [ { required: true, message: "请è¾å ¥ç³è¯·äºº", trigger: "blur" }, ], createTime: [ { required: true, message: "请è¾å ¥ç³è¯·æ¥æ", trigger: "blur" }, ], deptmentname: [ { required: true, message: "请è¾å ¥æå±ä¸å¡ç»", trigger: "blur" }, ], // amountrequested: [ // { required: true, message: "请è¾å ¥ç³è¯·éé¢", trigger: "blur" }, // ], }, //æç®æ¡ä¾åè¡¨æ°æ® donatebaseinfoList: [], //å½åéä¸æç®æ¡ä¾ curCase: {}, // æç®äººéæ °é®éè¡¨æ ¼æ°æ® donateconsolationfundList: [], //è´¹ç¨æç»å表 fundDetails: [], formData: {}, totalPreTaxAmount: 0.0, totalAfterTaxAmount: 0.0, totalAmount: 0.0, //è´¹ç¨ç³è¯·è¡¨åtitle title: "", userlist: [], itemlist: [], reporters: [], //è¡è®°å½çè´¹ç¨ç±»åæ°ç» rowfeeItemTypes: [], //è´¹ç¨ç±»åæ°ç» feeItemTypes: [], //è´¹ç¨è¯´æ rowfeeblocks: [], userprofile: {}, //æ¯å¦æ¯ä¸å®¶è´¹çOPO审æ¹äººå ismanager: false, unitList: [], fundflowList: [], showDetailInfoDialog: false, showDetailInfoDialogType: "", funddetailForm: { index: null, beneficiaryname: null, beneficiaryno: null, unitno: null, unitname: null, expertname: null, expertidcardno: null, expertunitno: null, expertunitname: null, experttitle: null, expertdepositbank: null, expertbankcardno: null, }, expertform: { id: null, address: null, bankcardno: null, branchbankname: null, createBy: null, createTime: null, del_flag: null, depositbank: null, idcardno: null, personnelunitno: null, pym: null, remark: null, searchValue: null, sex: null, telephone: null, title: null, unitname: null, unitno: null, updateBy: null, updateTime: null, username: null, userno: null, userstatus: 1, usertype: null, wbm: null, }, //éä»¶å表 fileList: [], //ä¸ä¼ éä»¶è·¯å¾ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", //æä»¶ä¸ä¼ token headers: { Authorization: "Bearer " + getToken(), }, } }; }, //çå¬å±æ§ 类似äºdataæ¦å¿µ computed: {}, //çæ§dataä¸çæ°æ®åå watch: {}, //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ created() { //è·ååæ®ç±»ååæä½è¦æ± this.getCurFundType(); this.getroute(); this.getUserProfile(); this.getList(); }, //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå ç´ ï¼ mounted() { this.getUserList(); this.getUnitList(); this.selectReporters(); this.getExternalpersonList(); this.getBaseInfoList(); }, beforeCreate() { }, //çå½å¨æ - å建ä¹å beforeMount() { }, //çå½å¨æ - æè½½ä¹å beforeUpdate() { }, //çå½å¨æ - æ´æ°ä¹å updated() { }, //çå½å¨æ - æ´æ°ä¹å beforeDestroy() { }, //çå½å¨æ - 鿝ä¹å destroyed() { }, //çå½å¨æ - 鿝宿 activated() { }, //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å //æ¹æ³éå methods: { /** éè¿åæ°è·åä¸å¡ç±»å */ getroute() { //éæ©ä¸å¡ç±»å:1ãæ°å¢ï¼2ãä¿®æ¹ï¼3ãæ¥ç let ids = this.$route.query.id; let tempbusinesstype = this.$route.query.businesstype; let tempoperationtype = this.$route.query.operationtype; // this.userprofile = this.$route.query.routerparam; this.businesstype = tempbusinesstype; if (tempbusinesstype == "1") { this.title = 'ä¸å®¶å³å¡è´¹ç³è¯·å'; } else if (tempbusinesstype == "2") { this.title = '伦çä¸å®¶å³å¡è´¹ç³è¯·å'; } else if (tempbusinesstype == "3") { this.title = 'å»å¦ææ¬æ¥éå'; } else if (tempbusinesstype == "4") { this.title = 'æé¡¹è´¹ç¨æ¥éå'; } this.operationtype = tempoperationtype; if (tempoperationtype == 'add') { this.title += 'æ°å»º' this.handleAdd(); } else if (tempoperationtype == 'update') { this.title += 'ä¿®æ¹' this.handleUpdate(ids); } else if (tempoperationtype == 'detail') { this.title += 'æ¥ç' this.handleDetail(ids); } else if (tempoperationtype == 'check') { this.title += 'å®¡æ ¸' this.handleCheck(ids); } }, /** æ°å¢æé®æä½ */ handleAdd() { this.reset(); this.queryParams.params = {}; /** businesstypeï¼1:ä¸å®¶è´¹ï¼2ï¼ä¼¦çä¸å®¶è´¹ */ if (this.businesstype == "1" && this.businesstype == "2") { if (this.curCase.id) { this.istrue += 2; this.form.donorno = this.curCase.donorno; this.form.name = this.curCase.name; this.form.infoid = this.curCase.id; // this.form.createTime = nowdate; //this.open = true; //this.initFundApplyForm(); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请å éæ©å·¦æ¹æç®æ¡ä¾ ")]), }); return; } } //åå§å // this.form.applytype = this.businesstype; this.form.createTime = new Date(); this.fundDetails = []; this.addRow(); }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.form.donorno = this.curCase.donorno; this.form.infoid = this.curCase.id; this.title = "ä¿®æ¹è´¹ç¨ç³è¯·"; this.operationtype = "edit"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; // this.form.recordstate =-1; // this.form.recordstatus = response.data.recordstatus + ""; this.form.name = this.curCase.name; //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] getownFundDetail(id).then((res) => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ this.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ servicesscope: this.fundDetails[m].servicesscope, expensedescribe: this.fundDetails[m].servicesscopename, expense: this.fundDetails[m].expense, remark: this.fundDetails[m].servicesscopename, }); // getdetailsByItemId(this.fundDetails[m].itemid).then((res) => { // let fundmsg = res.data; // fundmsg.forEach((item) => { // this.fundDetails[m].rowfeeblocks.push({ // servicesscope: item.id, // expensedescribe: item.expensedescribe, // expense: item.expense, // remark: item.expensedescribe, // }); // }); // }); } if (this.fundDetails.length == 0) { this.addRow(); } }); }); }, /** æ¥çæé®æä½ */ handleDetail(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.form.donorno = this.curCase.donorno; this.form.infoid = this.curCase.id; this.title = "æ¥çè´¹ç¨ç³è¯·"; this.operationtype = "detail"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; this.form.name = this.curCase.name; let listFundflowparams = { fundid: row.id, fundtype: 2, }; //éä»¶å¤ç this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] listFundflow(listFundflowparams).then((res) => { this.fundflowList = res.rows; }); getownFundDetail(id).then((res) => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); this.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ expense: this.fundDetails[m].expense, expensedescribe: this.fundDetails[m].servicesscopename, remark: this.fundDetails[m].servicesscope, servicesscope: this.fundDetails[m].servicesscope, }); } if (this.fundDetails.length == 0) { this.addRow(); } }); }); }, handleDelete(row) { const ids = row.id || this.ids; this.$modal .confirm("æ¯å¦ç¡®è®¤å é¤è¯¥è®°å½ï¼") .then(function () { return delFund(ids); }) .then(() => { getownFundDetail(ids).then((res) => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); } }); this.getfundList(); this.$modal.msgSuccess("å 餿å"); }) .catch(() => { }); }, /** 䏿¥æé®æä½ */ handleUp(row) { this.$confirm("æ¯å¦ç¡®è®¤å°ç»è®°è®°å½ä¸æ¥ï¼", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning", }) .then(() => { //æ¥æ¾æ¯å¦åå¨ç»è®°å®æè®°å½ //夿æ¯å¦åå¨ä¸æ¥è®°å½ row.recordstatus = 0; updateFund(row).then((response) => { if (response.code == 200) { this.$message({ type: "success", message: "ç³è¯·æå", }); } else { this.$message({ type: "error", message: "ç³è¯·å¤±è´¥", }); } this.loading = false; }); }) .catch(() => { this.$message({ type: "info", message: "已忶ç³è¯·", }); }); }, /** æäº¤æé® */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { this.formData = this.form; // let totalPreTaxAmount = 0.0; // let totalAfterTaxAmount = 0.0; // let totalAmount = 0.0; //ä¿ååæ ¡éªæ°æ® for (let k = 0; k < this.fundDetails.length; k++) { let tempDetail = this.fundDetails[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡é¡¹ç®æªéæ©ï¼è¯·å éæ©æå¡é¡¹ç®ååæäº¤ä¿åï¼"); return; } if (tempDetail.servicesscope == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çè´¹ç¨è¯´ææªéæ©,è¯·éæ©è´¹ç¨è¯´æååæäº¤ä¿åï¼"); return; } if (tempDetail.beneficiaryno == null) { this.$modal.msgWarning("æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡äººåå§åä¸ºéæ©,è¯·éæ©äººåååæäº¤ä¿åï¼"); return; } // //夿åä½ unitSel // try { // let unitIndex = this.unitList.findIndex( // (item) => tempDetail.unitno == item.organizationid // ); // if (unitIndex > -1) { // tempDetail.unitname = this.unitList[unitIndex].organizationname; // } else { // tempDetail.unitname = tempDetail.unitno; // } // } catch { // tempDetail.unitname = tempDetail.unitno; // } } //éä»¶å¤ç let list = this.fileList; if (list.length > 0) { this.form.annexfiles = list.map(item => item.url).join(","); } //å¤çæç» for (let i = 0; i < this.fundDetails.length; i++) { let tempDetail = this.fundDetails[i]; //è·åæå¡é¡¹ç®æç» let tempitemlist = tempDetail.itemlist; let itemIndex = tempitemlist.findIndex( (item) => tempDetail.itemid == item.id ); if (itemIndex > -1) { tempDetail.itemname = tempitemlist[itemIndex].itemName; tempDetail.itemid = tempitemlist[itemIndex].id; } //è·åapplytypenameãæå¡è´¹ç¨å¤§ç±» let applytypeIndex = this.rowfeeItemTypes.findIndex( (item) => tempDetail.applytype == item.value ); if (applytypeIndex > -1) { tempDetail.applytypename = this.rowfeeItemTypes[applytypeIndex].label; tempDetail.subjecttype = this.rowfeeItemTypes[applytypeIndex].subjecttype; tempDetail.subjecttypename = this.rowfeeItemTypes[applytypeIndex].subjecttypename; } this.fundDetails[i] = tempDetail; /* //计ç®ä¸ªç¨ //if (isNaN(parseFloat(tempDetail.taxedamount))) //è·ååæ° this.taxParam.beneficiaryNo = tempDetail.beneficiaryno; this.taxParam.startTime = this.form.createTime.substring(0, 10); // 计ç®ç¨åéé¢ if (tempDetail.taxedamount == undefined || tempDetail.taxedamount == null || tempDetail.taxedamount == 0 || tempDetail.taxedamount == '') { //è·ååæ° this.taxParam.money = tempDetail.amount.toString(); getTaxByBeneFiciaryNo(this.taxParam).then((res) => { if (res.code == 200) { tempDetail.taxamount = res.data; tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount; this.fundDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); } }); } // 计ç®ç¨åéé¢ if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') { //è·ååæ° this.taxParam.money = tempDetail.taxedamount.toString(); getTaxBeforeByAfterMoney(this.taxParam).then((res) => { if (res.code == 200) { tempDetail.taxamount = res.data.nowTax; tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney); this.fundDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); console.log("1", this.amount); } }); } */ } //è´¹ç¨å计 // this.form.pretaxcost = parseFloat(this.totalPreTaxAmount).toFixed(2); // this.form.taxedcost = parseFloat(this.totalAfterTaxAmount).toFixed(2); // this.form.amountrequested = this.totalAmount.toFixed(2); //ä¿åæ°æ® this.loading = true; this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; }); this.form.serviceFunddetails = this.fundDetails; if (this.form.id != null) { //æç®è this.form.donorname = this.curCase.name; // updateFund(this.form).then((response) => { // if (response.code === 200) { // this.loading = false; // for (let m = 0; m < this.fundDetails.length; m++) { // if (this.fundDetails[m].id > 0) { // updateFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败1ï¼" + response.msg); } }); // } else { // addFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败2ï¼" + response.msg); } }); // } // } // this.$modal.msgSuccess("ä¸å®¶å³å¡è´¹ä¿åæåï¼"); // } else { // this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败ï¼" + response.msg); // } // }); } else { this.form.recordstatus = -1; // addorupdateFund(this.form).then((response) => { // if (response.code === 200) { // this.selectDonotor(this.curCase); // } else { // this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败ï¼" + response.msg); // } // }); } addorupdateFund(this.form).then((response) => { if (response.code === 200) { this.selectDonotor(this.curCase); this.$modal.msgSuccess("ä¸å®¶å³å¡è´¹ä¿åæåï¼"); } else { this.$modal.msgError("ä¸å®¶å³å¡è´¹ä¿å失败ï¼" + response.msg); } }); //å ³éçªå£ this.loading = false; // this.getfundList(); this.selectDonotor(this.curCase); } }); }, // åæ¶æé® cancel() { this.reset(); }, // 表åéç½® reset() { this.form = { recordstate: -1, userno: null, username: null, id: null, infoid: null, donorno: null, delFlag: null, createBy: null, createTime: null, updateBy: null, updateTime: null, familyrelations: null, name: null, remark: null, doname: null, unitname: null, unitno: null, sex: null, idcardtype: null, idcardno: null, phone: null, donorname: null, depositbank: null, bankprovince: null, bankprovincename: null, bankcity: null, bankcityname: null, banktown: null, banktownname: null, branchbankname: null, bankcardno: null, annexbankcard: null, annexregistform: null, consolationmoney: null, applytype: "4", servicetypename: null, servicesscope: null, servicesscopename: null, }; this.resetForm("form"); //æ¸ ç©ºéä»¶ this.fileList = [] }, ShowDetailDialog(spoce, showType) { this.expertfrom = "1"; this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.unitno = spoce.row.unitno; this.funddetailForm.unitname = spoce.row.unitname; this.funddetailForm.expertname = ""; this.funddetailForm.expertidcardno = ""; this.funddetailForm.expertunitno = ""; this.funddetailForm.expertunitname = ""; this.funddetailForm.experttitle = ""; this.funddetailForm.expertdepositbank = ""; this.funddetailForm.expertbankcardno = ""; this.showDetailInfoDialog = true; this.showDetailInfoDialogType = showType; }, ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetails[tempIndex]; if (this.showDetailInfoDialogType == "name") { if (this.expertfrom == "1") { //ä»ä¸å®¶å表è·åä¿¡æ¯ this.personlist.map((res) => { if (tempName == res.username) { console.log("éæ©ä¸å®¶", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } }); } else { //ä¿åæ°å¢ä¸å®¶ this.expertform.id = null; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.usertype = "expert"; this.expertform.username = this.funddetailForm.expertname; this.expertform.idcardno = this.funddetailForm.expertidcardno; this.expertform.sex = null; this.expertform.telephone = null; this.expertform.address = null; this.expertform.wbm = null; this.expertform.pym = null; this.expertform.unitno = this.funddetailForm.expertunitno; try { let unitIndex = this.unitList.findIndex( (item) => this.expertform.unitno == item.organizationid ); if (unitIndex > -1) { this.expertform.unitname = this.unitList[unitIndex].organizationname; } else { this.expertform.unitname = this.expertform.unitno; } } catch { this.expertform.unitname = this.expertform.unitno; } this.expertform.title = this.funddetailForm.experttitle; this.expertform.personnelunitno = null; this.expertform.depositbank = this.funddetailForm.expertdepositbank; this.expertform.bankcardno = this.funddetailForm.expertbankcardno; this.expertform.branchbankname = null; this.expertform.remark = null; this.expertform.del_flag = "0"; addExternalperson(this.expertform).then((response) => { if (response.code == 200) { this.$modal.msgSuccess("æ°å¢ä¸å®¶ä¿¡æ¯æåï¼"); listExternalperson().then((res) => { this.personlist = res.rows; console.log("new personlist", this.personlist); //ä»ä¸å®¶å表è·åä¿¡æ¯ this.personlist.map((res) => { if (res.username == this.funddetailForm.expertname) { console.log("æ°å¢ä¸å®¶", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } }); }); } }); } } else if (this.showDetailInfoDialogType == "unit") { singleDetail.unitno = this.funddetailForm.unitno; try { let unitIndex = this.unitList.findIndex( (item) => singleDetail.unitno == item.organizationid ); if (unitIndex > -1) { singleDetail.unitname = this.unitList[unitIndex].organizationname; } else { singleDetail.unitname = singleDetail.unitno; } } catch { singleDetail.unitname = singleDetail.unitno; } } this.fundDetails[tempIndex] = singleDetail; this.showDetailInfoDialog = false; }, //è·åå½åç¨æ·ä¿¡æ¯ï¼å¹¶åå§åç»åäººä¿¡æ¯ getUserProfile() { getUserProfile().then((res) => { this.userprofile = res.data; this.standardlevel = res.data.standardlevel; if (this.userprofile.createBy == "admin" || this.userprofile.createBy == "001" || this.userprofile.createBy == "002") { this.ismanager = true; } else { this.ismanager = false; } if (this.operationtype = "add") { this.form.username = this.userprofile.nickName; this.form.userno = this.userprofile.userName; this.form.phone = this.userprofile.phonenumber; this.form.deptmentname = this.userprofile.dept.deptName; this.form.deptmentno = this.userprofile.dept.deptId; this.form.managername = this.userprofile.dept.leader; } }); }, //è·åè´¹ç¨é¡¹ç®ç夿³¨ä¿¡æ¯ selectedRemark(row) { row.rowfeeblocks.forEach((item, i) => { if (item.servicesscope === row.servicesscope) { row.servicesscopename = item.expensedescribe; if (row.servicesscopename.includes("ç¨å")) { row.amount = 0.0; row.taxamount = 0.0; row.taxedamount = item.expense; } else { row.amount = item.expense; row.taxamount = 0.0; row.taxedamount = 0.0; } this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; }); } }); }, //æ ¡éªæ¶è´¹é¡¹ç®æ¯å¦éå¤ verifyFeeItem(row) { row.itemlist.map((res) => { if (row.itemid === res.id) { row.remark = res.itemDescribe; row.itemcode = res.itemCode; } }); var repeatNum = 0; this.fundDetails.map((res) => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } }); if (repeatNum > 1) { this.$modal.msgWarning("æ¨å·²ç»æäº¤è¿è¯¥æå¡é¡¹ç®äº"); } //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ getdetailsByItemId(row.itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); row.rowfeeblocks = rowfeeblocks; row.servicesscope = null; row.servicesscopename = ""; }); }, // selectamount(row) { this.rowfeeblocks.forEach((item, i) => { if (item.expense === row.amount) { row.remark = item.expensedescribe; } }); }, getUnitList() { listOrganization(3).then((response) => { for (let i = 0; i < response.rows.length; i++) { this.unitList.push({ //organizationid: response.rows[i].organizationid, organizationid: response.rows[i].id, organizationname: response.rows[i].organizationname, }); } }); }, getBaseInfoList() { /** æ¥è¯¢è´¹ç¨ç³è¯·æç»å表 */ getList() { this.loading = true; listDonatebaseinfo(this.queryParams).then((response) => { this.donatebaseinfoList = response.rows; listFunddetail(this.queryParams).then(response => { this.funddetailList = response.rows; this.total = response.total; this.loading = false; }); }, //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ selectDonotor(row, column, event) { this.curCase = row; this.getfundList(); }, getfundList() { this.loading = true; // åæ¶æé® cancel() { this.open = false; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then((response) => { this.loading = false; this.donateconsolationfundList = response.rows; }); }, //å¯¼å ¥ææé¡¹ç® addAllItems() { this.loading = true; this.fundDetails = this.fundDetails.filter( (r) => r.applytype != "" && r.applytype != null ); let listAdd = []; //let listAdd = this.fundDetails; for (let i = 0; i < this.feeItemTypes.length; i++) { for (let j = 0; j < this.feeItemTypes[i].itemDetails.length; j++) { let list = this.fundDetails.filter( (r) => r.applytype == this.feeItemTypes[i].itemType && r.itemid == this.feeItemTypes[i].itemDetails[j].id ); if (list.length == 0) { let rowData = { id: null, orderno: listAdd.length + 1, applytype: this.feeItemTypes[i].itemType, itemid: this.feeItemTypes[i].itemDetails[j].id, itemcode: this.feeItemTypes[i].itemDetails[j].itemCode, recordstatus: "-1", beneficiaryname: "ç¹å»éæ©", unitname: "ç¹å»éæ©", itemlist: this.feeItemTypes[i].itemDetails, rowfeeblocks: null, servicesscope: null, servicesscopename: "" }; //è·åæ¶è´¹é¡¹ç®ç说æä¿¡æ¯ getdetailsByItemId(rowData.itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); rowData.rowfeeblocks = rowfeeblocks; rowData.servicesscope = null; rowData.servicesscopename = ""; }); listAdd.push(rowData); } } } this.fundDetails = listAdd; this.loading = false; // let Outerarr = this.fundDetails; // Outerarr.map((res) => { // let onelist = this.rowfeeItemTypes; // onelist.map((item) => { // //第ä¸å±ä¸ç¸çæ¶ï¼ // if (res.applytype !== item.itemType) { // this.addRow(); // } // }); // }); }, addAll(row, i, arr) { row.itemlist.map((res) => { if (res.id !== row.itemid) { let a = arr.length; this.addRow(); arr[a].itemlist = row.itemlist; arr[a].applytype = row.applytype; arr[a].itemid = res.id; getdetailsByItemId(arr[a].itemid).then((res) => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, }); }); row.rowfeeblocks = rowfeeblocks; }); } }); }, //æ°å¢ä¸è¡ addRow(rowIndex) { let rowData = { orderno: null, // 表åéç½® reset() { this.form = { id: null, fundid: null, beneficiaryname: "ç¹å»éæ©", beneficiaryname: null, beneficiaryno: null, unitname: "ç¹å»éæ©", unitno: null, uintname: null, uintno: null, uintuserno: null, title: null, idcardtype: null, idcardno: null, sex: null, @@ -1543,322 +312,93 @@ itemtype: null, amount: null, prepaidamount: null, taxamount: null, invoicecount: null, taxedamount: null, attachcount: null, remark: null, recordstatus: "-1", recordstatus: "0", delFlag: null, createBy: null, createTime: null, updateBy: null, updateTime: null, uploadflag: null, uploadtime: null, itemlist: [], servicesscope: null, rowfeeblocks: [], uploadtime: null }; if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { this.fundDetails.push(rowData); } else { this.fundDetails.splice(rowIndex + 1, 0, rowData); } for (let i = 0; i < this.fundDetails.length; i++) { this.fundDetails[i].orderno = i + 1; } this.resetForm("form"); }, //å è½½æå¡é¡¹ç® loadItemType(row) { let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemid = null; // row.itemlist = res.data; // this.$forceUpdate(); // }); /** æç´¢æé®æä½ */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, //è·åä¸å®¶å表 getExternalpersonList() { listExternalperson().then((res) => { this.personlist = res.rows; /** éç½®æé®æä½ */ resetQuery() { this.resetForm("queryForm"); this.handleQuery(); }, // å¤éæ¡é䏿°æ® handleSelectionChange(selection) { this.ids = selection.map(item => item.id) this.single = selection.length !== 1 this.multiple = !selection.length }, /** æ°å¢æé®æä½ */ handleAdd() { this.reset(); this.open = true; this.title = "æ·»å è´¹ç¨ç³è¯·æç»"; }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.reset(); const id = row.id || this.ids getFunddetail(id).then(response => { this.form = response.data; this.open = true; this.title = "ä¿®æ¹è´¹ç¨ç³è¯·æç»"; }); }, //ä¸å®¶äººåå表 selectReporters() { let types = ["expert"]; let templist = []; for (let i = 0; i < types.length; i++) { templist = []; listReportname(types[i]).then((res) => { for (let j = 0; j < res.data.length; j++) { templist.push({ reportName: res.data[j].reportName, reportNo: res.data[j].reportNo, }); } this.expertlist = this.expertlist.concat(templist); }); } }, selectpersonmsg(row) { // if(row.beneficiaryname) this.personlist.map((res) => { if (row.beneficiaryname == res.username) { row.beneficiaryno = res.userno; row.beneficiaryname = res.username; row.bankcardno = res.bankcardno; row.branchbankname = res.branchbankname; row.depositbank = res.depositbank; row.idcardno = res.idcardno; row.phone = res.phonenumber; row.title = res.title; row.unitname = res.unitname; row.unitno = res.unitno; } else { row.beneficiaryno = row.beneficiaryname; } }); }, getUserList() { listUser().then((res) => { console.log("listUser", res); this.userlist = res.data; }); }, //çæ¥åºå¯¹åºçè´¹ç¨é¡¹ç® searchItemType(val, scope) { let result = []; if (val != "") { let tempitemlist = scope.row.itemlist; for (let i = 0; i < tempitemlist.length; i++) { let pym = tempitemlist[i].itempinyin; if (pym != null && pym != undefined && pym != "") { if (pym.indexOf(val) != -1) { result.push(tempitemlist[i]); } } } scope.row.itemlist = result; } else { getItemNames(scope.row.applytype).then((res) => { scope.row.itemlist = res.data; //this.$set(this.fundDetails, rowindex, row); }); } }, deleteRows(row, index, rows) { this.$confirm("æ¯å¦ç¡®è®¤å é¤?", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "success", }) .then(() => { if (row.id !== null) { delFunddetail(row.id).then((res) => { if (res.code === 200) { this.$confirm("å 餿å", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "success", }).then(() => { this.$set(rows, rows.splice(index, 1)); getownFundDetail(this.form.id).then((res) => { this.$set(this.fundDetails, res.data); this.sumTotalFee(); // this.fundDetails = res.data }); }); } // getownFundDetail(this.form.id).then(res=>{ // this.$set(this.fundDetails,res.data) // this.fundDetails = res.data // }) /** æäº¤æé® */ submitForm() { this.$refs["form"].validate(valid => { if (valid) { if (this.form.id != null) { updateFunddetail(this.form).then(response => { this.$modal.msgSuccess("ä¿®æ¹æå"); this.open = false; this.getList(); }); } else { rows.splice(index, 1); this.sumTotalFee(); addFunddetail(this.form).then(response => { this.$modal.msgSuccess("æ°å¢æå"); this.open = false; this.getList(); }); } }) .catch(() => { //å ç¹åæ¶çæç¤º }); }, //计ç®ä¸ªç¨ calculateTax() { }, //è®¡ç®æ»éé¢ sumTotalFee(row) { let allSum = 0; if (this.form.applytype != null) { for (let i = 0; i < this.fundDetails.length; i++) { let totalFee = 0; let taxFee = 0; if (this.form.applytype == 1 || this.form.applytype == 2) { //计ç®å½åæ¥éå 容费ç¨å计 if (!isNaN(parseFloat(this.fundDetails[i].amount))) { totalFee += parseFloat(this.fundDetails[i].amount); taxFee += parseFloat(this.fundDetails[i].amount); } if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) { totalFee -= parseFloat(this.fundDetails[i].taxamount); taxFee -= parseFloat(this.fundDetails[i].taxamount); } } else if (this.form.applytype == 3) { if ( !isNaN(parseFloat(this.fundDetails[i].price)) && !isNaN(parseFloat(this.fundDetails[i].quantity)) ) { totalFee += parseFloat(this.fundDetails[i].price) * parseFloat(this.fundDetails[i].quantity); } } //ç¨åãç¨åéè¦ç¬ç«å½å ¥ // if (!isNaN(parseFloat(taxFee))) { // this.fundDetails[i].taxedamount = taxFee.toFixed(2); // } allSum += totalFee; } } // this.form.amountrequested = allSum.toFixed(2); // this.$forceUpdate(); }, //è·åè´¹ç¨ç±»å getCurFundType() { getFundTypeAll(this.businesstype).then((res) => { let dataList = res.data; this.feeItemTypes = dataList; this.rowfeeItemTypes = []; for (let m = 0; m < dataList.length; m++) { this.rowfeeItemTypes.push({ value: dataList[m].itemType, label: dataList[m].itemTypeName, subjecttype: dataList[m].subjecttype, subjecttypename: dataList[m].subjecttypename, }); } }); }, getitemlist(rowindex, row) { let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; this.$set(this.fundDetails, rowindex, row); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemlist = res.data; // this.$set(this.fundDetails, rowindex, row); // }); /** å é¤æé®æä½ */ handleDelete(row) { const ids = row.id || this.ids; this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤è´¹ç¨ç³è¯·æç»ç¼å·ä¸º"' + ids + '"çæ°æ®é¡¹ï¼').then(function () { return delFunddetail(ids); }).then(() => { this.getList(); this.$modal.msgSuccess("å 餿å"); }).catch(() => { }); }, mixExport(scope) { this.dayin(scope.row.id); //this.totaldayin(id); }, //ä¸å®¶è´¹å³å¡æå° dayin(id) { getdownloadLW(id).then((res) => { if (res.downloadUrl) { var fileUrl = res; //è·åå½åç½å var urlBase = process.env.VUE_APP_BASE_API; var curWWWPath = window.document.location.href; var pos = curWWWPath.indexOf(window.document.location.pathname); // å建aæ ç¾ var aEle = document.createElement("a"); aEle.href = curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; aEle.click(); this.$alert("ä¸è½½æå", "æç¤º", { confirmButtonText: "ç¡®å®", type: "success", }); } }); }, //æ±æ»æå° totaldayin(e) { // const id =this.row.id getdownloadBX(e).then((res) => { if (res.downloadUrl) { var fileUrl = res; //è·åå½åç½å var urlBase = process.env.VUE_APP_BASE_API; var curWWWPath = window.document.location.href; var pos = curWWWPath.indexOf(window.document.location.pathname); // å建aæ ç¾ var aEle = document.createElement("a"); aEle.href = curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; aEle.click(); this.$alert("ä¸è½½æå", "æç¤º", { confirmButtonText: "ç¡®å®", type: "success", }); } }); }, //æä»¶ä¸ä¼ handleUploadError() { }, /** ä¸è½½æä»¶æé®æä½ */ downFile(item) { const url = process.env.VUE_APP_BASE_API + item.url var a = document.createElement('a'); var event = new MouseEvent('click'); a.download = item.name; a.href = url; a.dispatchEvent(event); }, remove(file) { this.fileList.splice(this.fileList.indexOf(file), 1) }, handleExceed() { this.$message.error(`ä¸ä¼ æä»¶æ°éä¸è½è¶ è¿ ${5} 个!`); }, //æä»¶ä¸ä¼ æååè° uploadSccess(response, file, fileList) { //è·åéä»¶ä¿¡æ¯ä½ç½® if (response.code == 200) { this.form.filename = file.raw.name; this.$modal.msgSuccess(response.msg); this.fileList.push({ name: response.fileName, url: response.fileName }); } else { console.log(response.msg);; } }, }, /** å¯¼åºæé®æä½ */ handleExport() { const queryParams = this.queryParams; this.$modal.confirm('æ¯å¦ç¡®è®¤å¯¼åºææè´¹ç¨ç³è¯·æç»æ°æ®é¡¹ï¼').then(() => { this.exportLoading = true; return exportFunddetail(queryParams); }).then(response => { this.$download.name(response.msg); this.exportLoading = false; }).catch(() => { }); } } }; </script> <style scoped> /* @import url(); å¼å ¥å ¬å ±cssç±» */ </style> src/views/project/travelexpenseslist/Modifydetails/index.vue
@@ -503,11 +503,6 @@ <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> </el-dialog> <!-- <div class="container"> <pdf :src="iframeurl"></pdf> </div> --> <!-- <embed :src="iframeurl" type="application/pdf" width="1000" height="800" /> --> </div> </template> @@ -1565,7 +1560,7 @@ this.$modal.msgSuccess("æ°å¢æ¥éåä¿åæå!"); this.open = false; // this.getList(); // å ³éçªå£ this.$router.go(-1);