src/api/project/organization.js
@@ -15,6 +15,13 @@ method: 'get', }) } // æ¥è¯¢ç»©æäººåå表 export function listperformance(userType) { return request({ url: '/externalperson/group/getPersonInfo/' + userType, method: 'get', }) } // æ¥è¯¢æºæç®¡çå表 src/views/project/fund/applyDetail/index.vue
@@ -72,18 +72,7 @@ }}</el-radio> </el-form-item> </el-col> <!-- <el-col :span="5"> <el-form-item label="é¶è¡åç§°" prop="bankname"> <el-input v-model="form.bankname" placeholder="请è¾å ¥é¶è¡åç§°" /> </el-form-item> </el-col ><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="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥èç³»çµè¯" /> @@ -109,42 +98,6 @@ </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="taxcost" v-if="businessType == '1' || businessType == '2'"> <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="infoid"> <el-select v-model="form.checkstatus" filterable placeholder="è¯·éæ©é¢å®¡ç¶æ" > <el-option v-for="item in baselisttages" :key="item.id" :label="item.name" :value="item.id" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="ç³è¯·è¯´æ" prop="remark"> <el-input v-model="form.remark" placeholder="ç³è¯·è¯´æ" /> @@ -762,8 +715,27 @@ /> </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="é¢å®¡ç¶æ" prop="infoid"> <el-radio-group v-model="form.checkstatus" align="left" :disabled="userprofile.nickName != 'éæ å'" > <el-radio label="1">å¾ é¢å®¡</el-radio> <el-radio label="2">é¢å®¡éè¿çå¾ ææ</el-radio> <el-radio label="3">å·²æ¶å°æ¥éææ</el-radio> </el-radio-group> </el-form-item> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px" v-if="operationType == 'check'" > <el-col :span="7"> @@ -775,6 +747,7 @@ </el-form-item> </el-col> </el-row> <el-row v-if="operationType == 'check'"> <el-col :span="17"> <el-form-item label="å®¡æ ¸å¤æ³¨" align="left"> @@ -1828,6 +1801,8 @@ this.reset(); getFund(this.curId).then(response => { console.log(response.data, "åå§"); this.form = response.data; sessionStorage.removeItem("apiform"); @@ -1878,6 +1853,8 @@ this.reset(); getFund(this.curId).then(response => { console.log(response.data, "åå§"); this.form = response.data; sessionStorage.removeItem("apiform"); sessionStorage.setItem("apiform", JSON.stringify(this.form)); @@ -1924,6 +1901,7 @@ this.reset(); getFund(this.curId).then(response => { console.log(response.data, "åå§"); this.form = response.data; sessionStorage.removeItem("apiform"); @@ -2003,9 +1981,9 @@ //夿æ¯å¦åå¨ä¸æ¥è®°å½ this.form.recordstatus = 0; if (!this.form.id) { this.form.id = this.$route.query.id this.form.id = this.$route.query.id; } updateFund(this.form).then(response => { if (response.code == 200) { this.$message({ @@ -2136,44 +2114,6 @@ ].subjecttypename; } this.rbDetails[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.rbDetails[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.rbDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); } }); } */ } //计ç®å½åè¡æ¥éå 容费ç¨å计ï¼ç¨åéé¢ï¼amountï¼ãæ£ç¨éé¢ï¼taxamountï¼ãç¨åéé¢ï¼taxedamountï¼ if (this.businessType == "2") { @@ -2265,6 +2205,7 @@ ); sessionStorage.setItem("apiform", JSON.stringify(this.form)); addorupdateFund(this.form).then(response => { console.log(this.form); console.log(response, "ä¿åè¿å"); if (response.code === 200) { this.$modal.msgSuccess("ç³è¯·åä¿åæåï¼"); @@ -2292,6 +2233,10 @@ //å®¡æ¹æäº¤ checksubmit() { if (this.form.checkstatus != 3 && this.userprofile.nickName == "éæ å") { this.$modal.msgError("请确认æ¶å°ææååæäº¤å®¡æ ¸ï¼"); return; } let checkFundObj = { // fundid: this.checkObj.fundid, fundid: this.curId, @@ -2319,6 +2264,7 @@ getUserProfile() { getUserProfile().then(res => { this.userprofile = res.data; console.log(this.userprofile); this.standardlevel = res.data.standardlevel; if ( this.userprofile.userName == "admin" || @@ -2482,6 +2428,7 @@ //è·åæå¡é¡¹ç® getRowFeeItems(rowindex, row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); console.log(list[0]); row.itemlist = list[0].itemDetails; this.$set(this.rbDetails, rowindex, row); }, @@ -2637,7 +2584,6 @@ //è·ååæ° // this.taxParam.beneficiaryNo = row.beneficiaryno; // this.taxParam.startTime = this.form.createTime.substring(0, 10); // if (type == "A") { // // 计ç®ä¸ªç¨ãç¨åéé¢ // this.taxParam.money = row.amount.toString(); src/views/project/fund/applyDetail0/index.vue
@@ -65,7 +65,7 @@ </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-form-item label="æç®è " prop="donorname"> <el-input :disabled="true" v-model="form.donorname" placeholder="请è¾å ¥æç®è å§å" /> </el-form-item> </el-col> src/views/project/fund/ethicalExpertFeeApply/index.vue
@@ -158,8 +158,8 @@ </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请è¾å ¥æç®è å§å" clearable /> <el-form-item label="æç®è " prop="donorname"> <el-input :disabled="true" v-model="form.donorname" placeholder="请è¾å ¥æç®è å§å" clearable /> </el-form-item> </el-col> </el-row> src/views/project/fund/expertFeeApply/index.vue
@@ -389,10 +389,10 @@ </el-form-item> </el-col>--> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-form-item label="æç®è " prop="donorname"> <el-input :disabled="true" v-model="form.name" v-model="form.donorname" placeholder="请è¾å ¥æç®è å§å" /> </el-form-item> src/views/project/fund/medicalCostApply/index.vue
@@ -116,408 +116,7 @@ </el-card> </el-col> </el-row> <!-- æ·»å æä¿®æ¹è´¹ç¨ç³è¯·å --> <el-dialog :visible.sync="dialogOpen" :close-on-click-modal="false" width="1400px" :title="title" style="text-align: center" v-loading="loading"> <el-form 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="5"> <el-form-item label="ç³è¯·ç±»å"> <el-radio v-model="form.applytype" label="3">å»å¦ææ¬ç³è¯·</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="name"> <el-input :disabled="true" v-model="form.name" placeholder="请è¾å ¥æç®è å§å" clearable /> </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="pretaxcost"> <el-input v-model="form.taxedcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="å®¡æ ¸ç¶æ" prop="recordstatus"> <el-input v-if="0" 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-col :span="5"> <el-form-item label="èç³»çµè¯" prop="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥ç³è¯·è çèç³»æ¹å¼" clearable /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="å·¥ä½åä½" prop="unitno"> <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> </el-form-item> </el-col>--> </el-row> <el-row style="margin-bottom: 10px"> <el-col :span="4"> <el-button @click.native.prevent="addAlls" type="primary" size="small"> å¯¼å ¥æå¡é¡¹ç® </el-button> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px"> <el-table :data="fundDetails" border highlight-current-row> <el-table-column prop="orderno" align="center" label="æåº" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="æåº" /> </template> </el-table-column> <el-table-column prop="itemtype" align="center" label="è´¹ç¨ç±»å" width="220"> <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="è´¹ç¨ç±»å" @change="LoadItemTypeArr(scope.row)"> <el-option v-for="dict in fundtypeArr" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemtype" align="center" label="æå¡é¡¹ç®" width="260"> <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="æå¡é¡¹ç®" clearable filterable allow-create @change="select(scope.row)" :filter-method="val => SearchItem(val, scope)"> <el-option v-for="dict in scope.row.itemArr" :key="dict.id" :label="dict.itemName" :value="dict.id"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="beneficiaryno" align="center" label="å§å" width="120" v-if="form.applytype != 3"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname }}</el-button> </template> </el-table-column> <!-- <el-table-column prop="servicesscopename" align="center" label="è´¹ç¨è¯´æ" width="180" > <template slot-scope="scope"> <el-select v-model="scope.row.servicesscopename" placeholder="è´¹ç¨è¯´æ" clearable allow-create filterable @change="selectremark(scope.row)" > <el-option v-for="dict in fundblock" :key="dict.expensedescribe" :label="dict.expensedescribe" :value="dict.expensedescribe" ></el-option> </el-select> </template> </el-table-column> --> <el-table-column prop="amount" align="center" label="ç¨åéé¢" width="120" v-if="form.applytype != 3"> <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 fundblock" :key="dict.expensedescribe" :label="dict.expense" :value="dict.expense"></el-option> </el-select> <!-- <el-input v-model="scope.row.amount" placeholder="ç¨åéé¢" @change="selectamount(scope.row)" @blur=" (val) => { sumTotalFee(scope.row); } " /> --> </template> </el-table-column> <el-table-column prop="taxamount" align="center" label="æ£ç¨" width="120" v-if="form.applytype != '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="æ£ç¨" @blur="val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="ç¨åéé¢" width="120" 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="price" align="center" label="ä»·æ ¼" width="120" v-if="form.applytype == '3'"> <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="80" v-if="form.applytype == '3'"> <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="amount" align="center" label="éé¢" width="120" v-if="form.applytype == '3'"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ä»·æ ¼" @blur="val => { sumTotalFee(scope.row); } " /> </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> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="弿·é¶è¡" width="200"> <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"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¡å·" /> </template> </el-table-column> <el-table-column prop="remark" align="center" label="夿³¨" width="210" v-if="form.applytype == '3'"> <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="120" v-if="dialogType == '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> <el-button @click.native.prevent=" Filepopup(scope.$index, fundDetails, scope.row) " type="text" size="small"> ç¥¨æ® </el-button> </template> </el-table-column> </el-table> </el-row> <!-- <el-row> <el-col :span="4"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addRow" >æ°å¢ææ¬è´¹ç¨</el-button > </el-col> </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-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="24"> <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="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="handleremove" accept="image/*,.pdf"> <el-button :disabled="dialogType == 'detail'" size="small" type="primary">ä¸ä¼ </el-button> </el-upload> </el-form-item> </el-col> </el-row> <el-row v-if="dialogType == '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> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="dialogType == 'edit'">ä¿ å</el-button> <!-- <el-button type="success" @click="print">æ å°</el-button> --> <el-button @click="cancel">å æ¶</el-button> </div> </el-dialog> <el-dialog :visible.sync="detailInfoDialogShow" :close-on-click-modal="false" :title="'è´¹ç¨åä½éæ©'" style="text-align: center" v-loading="loading" width="500px"> <el-form ref="funddetailForm" :model="funddetailForm" label-width="120px"> <el-row> <el-col :span="24" v-if="detailInfoDialogShowType == 'name'"> <el-form-item align="left" 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 arrr3" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="detailInfoDialogShowType == 'unit'"> <el-form-item align="left" label="åä½åç§°" prop="unitno" label-width="80px"> <el-select v-model="funddetailForm.unitno" placeholder="è¯·éæ©åä½" clearable filterable allow-create style="width: 100%"> <el-option v-for="(item, index) in bankaccountlist" :key="index" :label="item.reportName" :value="item.reportNo"></el-option> </el-select> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="detailInfoDialogShow = false">å æ¶</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">ç¡® å®</el-button> </span> </el-dialog> <el-dialog :title="pdftitle" :visible.sync="pdfVisible" width="50%"> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="dialogType == 'detail'" size="small" type="primary">ä¸ä¼ </el-button> </el-upload> </div> <!-- <div class="pdftit" @click="pdffn(item)" v-for="item in fileList" :key="item.name" > {{ item.name }} </div> --> </div> <div v-if="this.previewpdf" class="pdfimgmin"> <img :src="pdfimg" /> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> </el-dialog> </div> </template> src/views/project/fund/officeExpenseApply/index.vue
@@ -119,8 +119,8 @@ </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="æç®è " prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请è¾å ¥æç®è å§å" clearable /> <el-form-item label="æç®è " prop="donorname"> <el-input :disabled="true" v-model="form.donorname" placeholder="请è¾å ¥æç®è å§å" clearable /> </el-form-item> </el-col> </el-row> src/views/project/fund/performanceApply/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,555 @@ <!-- --> <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="70px" > <el-row align="left"> <el-col :span="5"> <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> <el-col :span="5"> <el-form-item label="éé¢" prop="money" style="float: left"> <el-input v-model="queryParams.money" placeholder="请è¾å ¥ç³è¯·äººéé¢" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="ç³è¯·æ¥æ" prop="createTime"> <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick" range-separator="è³" start-placeholder="æ¥éç³è¯·å¼å§æ¥æ" end-placeholder="æ¥éç³è¯·ç»ææ¥æ" @keyup.enter.native="handleQuery" > </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="审æ¹ç¶æ" prop="CHECKFLAG" style="float: left"> <el-select v-model="queryParams.CHECKFLAG" placeholder="è¯·éæ©" style="width: 100%" > <el-option v-for="item in checkFlagOptions" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="4"> <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-col> </el-row> </el-form> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" >æ°å¢</el-button > <!-- v-hasPermi="['project:medicalfund:add']" --> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" >导åº</el-button > </el-col> <!-- v-hasPermi="['project:medicalfund:export']" --> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> --> </el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> <el-table-column label="ç³è¯·æ¥æ" align="center" prop="createTime" width="180px" > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç³è¯·äºº" align="center" prop="username" width="150px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="150px" /> <el-table-column label="å®¡æ ¸ç¶æ" width="150" align="center" prop="recordstatus" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> </template> </el-table-column> <el-table-column label="绩æç±»å" width="150" align="center" prop="performancetype" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_performance_type" :value="scope.row.performancetype" /> </template> </el-table-column> <el-table-column label="夿³¨" align="center" prop="remark" /> <el-table-column label="æä½" fixed="right" align="center" class-name="small-padding fixed-width" width="280px" > <template slot-scope="scope"> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-edit" @click="handleup(scope.row)" >䏿¥</el-button > <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['project:medicalfund:edit']" >ä¿®æ¹</el-button > <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)" >æ¥ç</el-button > <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['project:medicalfund:delete']" >å é¤</el-button > <el-button size="mini" type="text" icon="el-icon-download" @click="mixExport(scope.row.id)" v-hasPermi="['project:medicalfund:download']" >ä¸è½½</el-button > </template> </el-table-column> </el-table> </div> </template> <script> //è¿éå¯ä»¥å¯¼å ¥å ¶ä»æä»¶ï¼æ¯å¦ï¼ç»ä»¶ï¼å·¥å ·jsï¼ç¬¬ä¸æ¹æä»¶jsï¼jsonæä»¶ï¼å¾çæä»¶ççï¼ //ä¾å¦ï¼import ãç»ä»¶åç§°ã from 'ãç»ä»¶è·¯å¾ã'; import { onelistFund, listFund, getFund, delFund, addFund, updateFund, getdownloadYX, getdownloadBX } from "@/api/project/fund"; import { delFunddetail, addFunddetail, getownFundDetail } from "@/api/project/funddetail"; 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_recordstatus", "sys_OrganizationType", "sys_DonationStatus", "sys_depositbank", "sys_FamilyRelation", "sys_IDType", "sys_ConsolationType", "sys_fund_type", "sys_finsubject", "sys_financeitemtype", "sys_expensetype", "sys_performance_type" ], data() { //è¿éåæ¾æ°æ® return { businesstype: "4", // é®ç½©å± loading: true, // 导åºé®ç½©å± exportLoading: false, total: 0, 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 }, checkFlagOptions: [ { value: 0, label: "已审æ¹" }, { value: 1, label: "å¾ å®¡æ¹" }, { value: 2, label: "å ¨é¨" } ], fundQueryParam: { infoid: null, applytype: "5", createBy: null, 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 }, // 表ååæ° form: {}, //æç®æ¡ä¾åè¡¨æ°æ® donatebaseinfoList: [], //æ¯å¦æ¾ç¤ºè´¹ç¨ç³è¯·å¼¹çª dialogOpen: false, //è´¹ç¨ç³è¯·è¡¨åtitle applyFormTitle: "", // æç®äººéæ °é®éè¡¨æ ¼æ°æ® donateconsolationfundList: [], //æç»è®°å½ fundDetails: [], // å¼¹åºå±æ é¢ title: "", itemArr: [], //ç¨æ· userlist: [], //é¶è¡è´¦å· bankaccountlist: [], //æºæåä½ unitList: [], //è´¹ç¨ç±»åæ°ç» fundtypeArr: [], defaultperson: {}, fundblock: [], fundtypeArrAll: [], dialogType: "edit", detailInfoDialogShow: false, detailInfoDialogShowType: "", funddetailForm: { beneficiaryname: null, beneficiaryno: null, unitno: null, unitname: null, index: null }, //éä»¶å表 fileList: [], //ä¸ä¼ éä»¶è·¯å¾ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", headers: { Authorization: "Bearer " + getToken() } }; }, //çå¬å±æ§ 类似äºdataæ¦å¿µ computed: {}, //çæ§dataä¸çæ°æ®åå watch: {}, //æ¹æ³éå methods: { handleup(row) { console.log(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: "已忶ç³è¯·" }); }); }, /** æç´¢æé®æä½ */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, /** éç½®æé®æä½ */ resetQuery() { this.daterangeReporttime = []; this.resetForm("queryForm"); this.handleQuery(); }, /** æ°å¢æé®æä½ */ handleAdd() { this.$router.push({ path: "/finance/performancedetails/", query: { id: 0, businessType: "5", operationType: "add" } }); }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.$router.push({ path: "/finance/performancedetails/", query: { id: row.id, businessType: "5", operationType: "update" } }); }, /** æ¥çæé®æä½ */ handleDetail(row) { this.$router.push({ path: "/finance/performancedetails/", query: { id: row.id, businessType: "5", operationType: "detail" } }); }, /** å¯¼åºæé®æä½ */ handleExport() { const queryParams = this.queryParams; this.$modal .confirm("æ¯å¦ç¡®è®¤å¯¼åºæææ¥éç³è¯·æ°æ®é¡¹ï¼") .then(() => { this.exportLoading = true; return exportReimbursement(queryParams); }) .then(response => { this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => {}); }, 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.getList(); this.$modal.msgSuccess("å 餿å"); }) .catch(() => {}); }, /** æ¥è¯¢å表 */ getList() { this.loading = true; this.queryParams.params = {}; console.log(21); listFund(this.fundQueryParam).then(response => { console.log(11); this.loading = false; this.donateconsolationfundList = response.rows; }); }, // æç®è å»å¦ç»è®¡æå° dayin2(id) { getdownloadYX(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" }); } }); }, // ä¸è½½æé® mixExport(id) { this.dayin2(id); //this.totaldayin(id); } }, //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ created() { this.getList(); }, //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå ç´ ï¼ mounted() {}, beforeCreate() {}, //çå½å¨æ - å建ä¹å beforeMount() {}, //çå½å¨æ - æè½½ä¹å beforeUpdate() {}, //çå½å¨æ - æ´æ°ä¹å updated() {}, //çå½å¨æ - æ´æ°ä¹å beforeDestroy() {}, //çå½å¨æ - 鿝ä¹å destroyed() {}, //çå½å¨æ - 鿝宿 activated() {} //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å }; </script> <style scoped> /* @import url(); å¼å ¥å ¬å ±cssç±» */ </style> src/views/project/fund/performancedetails/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,2100 @@ <!-- --> <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%" @change="getUserAccount" > <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="5"> <el-form-item label="ç³è¯·åç±»å"> <el-select v-model="form.performancetype" filterable placeholder="è¯·éæ©ç³è¯·åç¶æ" > <el-option v-for="item in PerformanceType" :key="item.id" :label="item.name" :value="item.id" > </el-option> </el-select> </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="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <el-col :span="5"> <el-form-item label="é¢å®¡ç¶æ" prop="infoid"> <el-select v-model="form.checkstatus" filterable placeholder="è¯·éæ©é¢å®¡ç¶æ" > <el-option v-for="item in baselisttages" :key="item.id" :label="item.name" :value="item.id" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="ç³è¯·è¯´æ" prop="remark"> <el-input v-model="form.remark" placeholder="ç³è¯·è¯´æ" /> </el-form-item> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px" /> <el-row v-if="jurisdiction"> <el-alert title="å½å为æ¥çç¶æï¼ä¸æ¯æä¿®æ¹åå¨ã" type="warning" show-icon > </el-alert> </el-row> <el-row> <el-col :span="3" ><div style="margin-bottom: 15px;"> <el-button type="success" icon="el-icon-download" @click="Batchentry" >æ¹éå½å ¥</el-button > </div></el-col > </el-row> <el-row v-if="operationType == 'check'"> <el-col :span="3" ><div style="margin-bottom: 15px;"> <el-button type="success" icon="el-icon-edit-outline" @click="Manualcalculationfn" >è®¡ç®æç»</el-button > </div></el-col > </el-row> <el-row> <el-table :data="rbDetails" v-loading="loading" max-height="800" border highlight-current-row > <el-table-column prop="orderno" align="center" label="åºå·" width="88" > <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="verifyFeeItemType(scope.row)" > <el-option v-for="dict in rowfeeItemTypes" :key="dict.value" :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.id" :label="dict.itemName" :value="dict.id" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="amount" align="center" label="ç¨åéé¢" width="120" > <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ç¨åéé¢" @blur=" val => { calculateTax(scope.row, 'A'); } " /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="ç¨åéé¢" width="120" > <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="ç¨åéé¢" @blur=" val => { calculateTax(scope.row, 'B'); } " /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="å§å" width="250" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'expert')" >{{ scope.row.beneficiaryname ? scope.row.beneficiaryname : "ç¹å»éæ©" }}</el-button > </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="弿·é¶è¡" width="200" > <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" > <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¸å·" /> </template> </el-table-column> <el-table-column prop="remark" align="center" width="330" label="夿³¨" > <template slot-scope="scope"> <el-input type="textarea" :rows="2" v-model="scope.row.remark" placeholder="夿³¨" /> </template> </el-table-column> <el-table-column fixed="right" align="center" label="æä½" width="180" > <template slot-scope="scope"> <el-button type="text" size="mini" @click="addRow(scope.$index)" v-if=" operationType == 'add' || operationType == 'update' || operationType == 'check' " >æ°å¢</el-button > <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, rbDetails) " type="text" size="small" v-if=" operationType == 'add' || operationType == 'update' || operationType == 'check' " > å é¤ </el-button> </template> </el-table-column> </el-table> </el-row> <el-row v-if=" operationType == 'detail' || operationType == 'check' || operationType == 'update' " > <el-table :data="fundflowList" border> <el-table-column label="å®¡æ ¸æ¥æ" align="center" width="160" prop="createTime" /> <el-table-column label="å®¡æ ¸äºº" align="center" width="120" prop="checkusername" /> <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 == 'update' || ismanager == true || beforehandType == '1' " >æäº¤ä¿å</el-button > <el-button type="success" @click="handleup" v-if="operationType == 'add' || operationType == 'update'" >䏿¥</el-button > <el-button type="primary" @click="checksubmit" v-if="operationType == 'check' && beforehandType != '1'" >æäº¤å®¡æ ¸</el-button > <el-button @click="cancel">å ³ é</el-button> </div> </div> <el-dialog :visible.sync="showSelectionDialog" :close-on-click-modal="false" :title="'个人信æ¯éæ©'" width="500px" style="text-align: center" v-loading="loading" > <el-form ref="funddetailForm" :model="funddetailForm"> <el-row> <el-select v-model="funddetailForm.userName" filterable remote reserve-keyword placeholder="请è¾å ¥å ³é®è¯" :remote-method="remoteMethod" :loading="loadingperformance" > <el-option v-for="item in optionsperformance" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showSelectionDialog = false">å æ¶</el-button> <el-button type="primary" @click="ConfirmDetailDialog()" >ç¡® å®</el-button > </span> </el-dialog> <el-dialog title="æç¤º" :visible.sync="Savereminder" width="30%"> <el-alert :title=" 'æ¨å·²æ·»å ' + totalquantity + 'æ¡æ°æ®ï¼ä¸ºé²æ¢æ°æ®ä¸¢å¤±æ¯å¦æäº¤ä¿ååç»§ç»æ·»å ã' " type="warning" > </el-alert> <span slot="footer" class="dialog-footer"> <el-button @click="unsave">å æ¶</el-button> <el-button type="primary" @click="Savenow">ç¡® å®</el-button> </span> </el-dialog> <!-- æ¹ééå --> <el-dialog title="æ¹éçææç»ä¿¡æ¯" :visible.sync="batchdialogVisible" width="40%" > <div style="max-height: 330px; overflow-y: auto"> <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange" >å ¨é</el-checkbox > <div style="margin: 15px 0;"></div> <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange" > <el-checkbox border v-for="city in cityOptions" :label="city" :key="city.userNo" >{{ city.userName }}</el-checkbox > </el-checkbox-group> </div> <span slot="footer" class="dialog-footer"> <el-button @click="batchdialogVisible = false">å æ¶</el-button> <el-button type="primary" @click="BatchentryFn">ç¡® å®</el-button> </span> </el-dialog> </div> </template> <script> import { listDonatebaseinfo, getDonatebaseinfo } from "@/api/project/donatebaseinfo"; import debounce from "lodash/debounce"; import { getFund, delFund, updateFund, getdownloadLW, checkfund, getdownloadBX, addorupdateFund, ManualCalculation, getdetailsByItemId } from "@/api/project/fund"; import { delFunddetail, getownFundDetail, getItemNames, getFundTypeAll } from "@/api/project/funddetail"; import { listFundflow } from "@/api/project/fundflow"; import { listOrganization, getOrganization, listReportname, listperformance, listUser } from "@/api/project/organization"; import { listExternalperson, addExternalperson, updateExternalperson, exportExternalperson } from "@/api/project/externalperson"; import { listItemexpense } from "@/api/project/itemexpense"; 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_DonationStatus", "sys_recordstatus", "sys_professionaltitle"], data() { //è¿éåæ¾æ°æ® return { // é®ç½©å± loading: false, // 导åºé®ç½©å± exportLoading: false, usernamedata: "", jurisdiction: false, Routinglevel: 1, // 表ååæ° form: {}, experthear: "", spocewl: "", //è´¹ç¨ç³è¯·è¡¨åtitle title: "", //ç³è¯·åç±»å businessType: "0", businessName: "", //æä½ç±»å operationType: "", //å½ååæ®id curId: 0, //å½åéä¸æç®æ¡ä¾ curCase: {}, total: 0, // å½åç¨æ·ä¿¡æ¯ userprofile: {}, //ç³»ç»ç¨æ·å表 userlist: [], //ææäººå表 personlist: [], //ä¸å®¶å表 expertlist: [], //å»çæºæå表 unitList: [], //è´¹ç¨æ¥éæºæå表 feeUnitList: [], batchdialogVisible: false, itemlist: [], cityOptions: [], checkAll: false, checkedCities: [], Personnelforname: null, unitforname: null, isIndeterminate: true, //æ¯å¦æ¯ä¸å®¶è´¹çOPO审æ¹äººå ismanager: false, //ä¸å®¶è´¹éæ©ï¼1æ¯ä¸å®¶åºï¼2æ¯æ°å¢ expertfrom: "1", baselisttages: [ { id: 1, name: "å¾ é¢å®¡" }, { id: 2, name: "é¢å®¡éè¿çå¾ ææ" }, { id: 3, name: "å·²æ¶å°æ¥éææ" } ], PerformanceType: [ { id: 1, name: "æåº¦ç»©æ" }, { id: 2, name: "å£åº¦ç»©æ" }, { id: 3, name: "年度绩æ" } ], //æç®æ¡ä¾å表 donateList: [], //è´¹ç¨æç»å表 rbDetails: [], formData: {}, amount: 0.0, totalPreTaxAmount: 0.0, totalAfterTaxAmount: 0.0, totalAmount: 0.0, tableDatatop: [], optionsperformance: [], valueperformance: [], listperformancea: [], loadingperformance: false, //è´¹ç¨ç±»åæ°ç» feeItemTypes: [], //è¡è®°å½çè´¹ç¨ç±»åæ°ç» rowfeeItemTypes: [{ label: "ç®¡çææ¬", value: "9" }], //è´¹ç¨è¯´æ feeBlocks: [], fundflowList: [], // éæºæ° randomnumber: "", //ä¸å®¶/åä½éæ©ï¼expert/unit selectionType: "", showSelectionDialog: false, //ç¨åé颿 é¢ï¼ä¸å®¶è´¹-ç¨åéé¢ï¼å»å¦ææ¬ãåå ¬è´¹ç¨-éé¢ amountLabel: "ç¨åéé¢", // è¡¨åæ ¡éª rules: { createTime: [ { required: true, message: "请è¾å ¥å¡«æ¥æ¥æ", trigger: "blur" } ], reason: [ { required: true, message: "请è¾å ¥åºå·®äºç±", trigger: "blur" } ], deptmentname: [ { required: true, message: "请è¾å ¥æå±ä¸å¡ç»", trigger: "blur" } ] }, funddetailForm: { index: null, userName: 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 }, //审æ¹åæ° checkObj: { flowlevelone: null, flowconclusion: null, fundid: null }, // æ¥è¯¢åæ° 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: "0", createBy: null }, expertQueryParam: { pageNum: 1, pageSize: 10000, userno: null, username: null, usertype: null }, //计ç®ä¸ªç¨åæ° taxParam: { beneficiaryNo: "", money: "0", startTime: "" }, beforehandType: null, //æå¡è´¹ç¨åæ° expenseQueryParams: { pageNum: 1, pageSize: 10000, itemid: null, expense: null, expensedescribe: null, usestate: null }, //ç¥¨æ®æä»¶ pdftitle: "", pdfimg: "", pdfimgsrcList: [], pdfVisible: false, previewpdf: false, hintitle: "请ä¸ä¼ æä»¶åæ¥ç", atpresent: "", Savereminder: false, //æéä¿åå¼¹æ¡ Reminderquantity: 0, //æéæ°é totalquantity: 0, //æ»æ°é Modifyornot: 0 //æ¯å¦ä¿®æ¹ }; }, //çå¬å±æ§ 类似äºdataæ¦å¿µ computed: {}, //çæ§dataä¸çæ°æ®åå watch: {}, //æ¹æ³éå methods: { bbaaccss(val) {}, // æµè§å¨é¡µé¢å ³éæå·æ°æç¤º beforeunloadHandler(e) { if ( (JSON.stringify(this.form) == sessionStorage.getItem("apiform") && JSON.stringify(this.rbDetails) == sessionStorage.getItem("apifunddetail")) || !sessionStorage.getItem("apifunddetail") ) { } else { this._beforeUnload_time = new Date().getTime(); e = e || window.event; if (e) { e.returnValue = "å ³éæç¤º"; } return "å ³éæç¤º"; } }, // 表åéç½® reset() { this.form = { id: null, applytype: "0", 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 = []; }, /** éè¿åæ°è·åä¸å¡ç±»å */ getroute() { console.log(11); //éæ©ä¸å¡ç±»å:1ãæ°å¢ï¼2ãä¿®æ¹ï¼3ãæ¥ç this.curId = this.$route.query.id; this.businessType = this.$route.query.businessType; this.operationType = this.$route.query.operationType; this.beforehandType = this.$route.query.beforehandType; console.log(1); //è·åè´¹ç¨é¡¹ç®ç±»å this.getFeeTypes(); this.businessName = "绩æç³è¯·å"; this.getUnitList(); console.log(2); if (this.operationType == "add") { this.title = this.businessName + "æ°å»º"; this.handleAdd(); } else if (this.operationType == "update") { this.title = this.businessName + "ä¿®æ¹"; console.log(this.title); this.handleUpdate(); } else if (this.operationType == "detail") { this.title = this.businessName + "æ¥ç"; this.jurisdiction = true; this.handleDetail(); } else if (this.operationType == "check") { this.title = this.businessName + "å®¡æ ¸"; this.handleCheck(); } }, /** æ°å¢æé®æä½ */ handleAdd() { console.log("æ°å¢"); //åå§å this.istrue += 2; this.reset(); /** businessTypeï¼1ï¼ä¸å®¶è´¹ï¼2ï¼ä¼¦çä¸å®¶è´¹ï¼3ï¼å»å¦ææ¬ï¼4ï¼åå ¬è´¹ç¨*/ this.form.applytype = this.businessType; //åå§åæç» this.rbDetails = []; this.addRow(0); }, /** ä¿®æ¹æé®æä½ */ handleUpdate() { this.isopen = 0; this.reset(); getFund(this.curId).then(response => { this.form = response.data; sessionStorage.removeItem("apiform"); sessionStorage.setItem("apiform", JSON.stringify(this.form)); //æç»å¤ç getownFundDetail(this.curId).then(res => { this.rbDetails = res.data; if (this.rbDetails.length > 0) { for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getRowFeeItems(m, this.rbDetails[m]); //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( r => r.itemid == this.rbDetails[m].itemid ); } sessionStorage.removeItem("apifunddetail"); sessionStorage.setItem( "apifunddetail", JSON.stringify(this.rbDetails) ); } else { this.addRow(0); } }); let listFundflowparams = { fundid: this.curId, fundtype: 2 }; listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); }); }, /** æ¥çæé®æä½ */ handleDetail() { this.isopen = 0; this.reset(); getFund(this.curId).then(response => { this.form = response.data; sessionStorage.removeItem("apiform"); sessionStorage.setItem("apiform", JSON.stringify(this.form)); //ä¸å¡æç» getownFundDetail(this.curId).then(res => { this.rbDetails = res.data; console.log("this.feeBlocks", this.feeBlocks); for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getRowFeeItems(m, this.rbDetails[m]); //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( r => r.itemid == this.rbDetails[m].itemid ); console.log( "this.rbDetails[m].rowfeeblocks", this.rbDetails[m].rowfeeblocks ); } if (this.rbDetails.length == 0) { this.addRow(0); } }); //ä¸å¡æµç¨ let listFundflowparams = { fundid: this.curId, fundtype: 2 }; listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); }); }, /** æ¥çæé®æä½ */ handleCheck() { this.isopen = 0; this.reset(); getFund(this.curId).then(response => { this.form = response.data; sessionStorage.removeItem("apiform"); sessionStorage.setItem("apiform", JSON.stringify(this.form)); //ä¸å¡æç» getownFundDetail(this.curId).then(res => { this.rbDetails = res.data; for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getRowFeeItems(m, this.rbDetails[m]); //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( r => r.itemid == this.rbDetails[m].itemid ); } if (this.rbDetails.length == 0) { this.addRow(0); } }); //ä¸å¡æµç¨ let listFundflowparams = { fundid: this.curId, fundtype: 2 }; listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); }); }, /** å é¤æé®æä½ */ handleDelete() { this.$modal .confirm("æ¯å¦ç¡®è®¤å é¤è¯¥è®°å½ï¼") .then(function() { return delFund(this.curId); }) .then(() => { getownFundDetail(this.curId).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() { if ( (JSON.stringify(this.form) == sessionStorage.getItem("apiform") && JSON.stringify(this.rbDetails) == sessionStorage.getItem("apifunddetail")) || !sessionStorage.getItem("apifunddetail") ) { } else { this.$message.error("请ä¿åååè¿è¡ä¸æ¥"); return; } this.$confirm("æ¯å¦ç¡®è®¤å°ç»è®°è®°å½ä¸æ¥ï¼", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning" }) .then(() => { //æ¥æ¾æ¯å¦åå¨ç»è®°å®æè®°å½ //夿æ¯å¦åå¨ä¸æ¥è®°å½ this.form.recordstatus = 0; if (!this.form.id) { this.form.id = this.$route.query.id; } updateFund(this.form).then(response => { if (response.code == 200) { this.$message({ type: "success", message: "ç³è¯·æå" }); this.cancel(); } else { this.$message({ type: "error", message: "ç³è¯·å¤±è´¥" }); } this.loading = false; }); }) .catch(() => { this.$message({ type: "info", message: "已忶ç³è¯·" }); }); }, generateRandomString(length) { const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; let randomString = ""; for (let i = 0; i < length; i++) { randomString += characters.charAt( Math.floor(Math.random() * characters.length) ); } return randomString; }, /** æäº¤æé® */ submitForm: debounce(function() { if (!this.randomnumber) { this.randomnumber = this.generateRandomString(9); this.form.randomnumber = this.randomnumber; } this.$refs["form"].validate(valid => { if (valid) { this.formData = this.form; //ä¿ååæ ¡éªæ°æ® for (let k = 0; k < this.rbDetails.length; k++) { let tempDetail = this.rbDetails[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡é¡¹ç®æªéæ©ï¼è¯·å éæ©æå¡é¡¹ç®ååæäº¤ä¿åï¼" ); return; } if (this.businessType == "1") { if (tempDetail.servicesscope == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çè´¹ç¨è¯´ææªéæ©,è¯·éæ©è´¹ç¨è¯´æååæäº¤ä¿åï¼" ); return; } if (tempDetail.beneficiaryno == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡äººåå§åä¸ºéæ©,è¯·éæ©äººåååæäº¤ä¿åï¼" ); return; } } } //å¤çæç» for (let i = 0; i < this.rbDetails.length; i++) { let tempDetail = this.rbDetails[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.rbDetails[i] = tempDetail; } //计ç®å½åè¡æ¥éå 容费ç¨å计ï¼ç¨åéé¢ï¼amountï¼ãæ£ç¨éé¢ï¼taxamountï¼ãç¨åéé¢ï¼taxedamountï¼ if (this.businessType == "2") { for (let j = 0; j < this.rbDetails.length; j++) { let tempDetail = this.rbDetails[j]; if ( isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0 ) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (j + 1).toString() + "è¡çé颿ªè¾å ¥ï¼è¯·å è¾å ¥éé¢ååæäº¤ä¿åï¼" ); return; } } } else if (this.businessType == "3" || this.businessType == "4") { for (let j = 0; j < this.rbDetails.length; j++) { let tempDetail = this.rbDetails[j]; if ( isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0 ) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (j + 1).toString() + "è¡çé颿ªè¾å ¥ï¼è¯·å è¾å ¥éé¢ååæäº¤ä¿åï¼" ); return; } if ( isNaN(parseFloat(tempDetail.taxamount)) || parseFloat(tempDetail.taxamount) == 0 ) { tempDetail.taxedamount = parseFloat(tempDetail.amount); } else { tempDetail.taxedamount = parseFloat(tempDetail.amount) + parseFloat(tempDetail.taxamount); } } } //ä¿åæ°æ® this.loading = true; this.form.serviceFunddetails = 0; this.rbDetails.map(item => { this.form.serviceFunddetails += item.amount; }); this.form.serviceFunddetails = this.rbDetails; if (this.form.id != null) { } else { this.form.recordstatus = -1; } sessionStorage.setItem( "apifunddetail", JSON.stringify(this.rbDetails) ); sessionStorage.setItem("apiform", JSON.stringify(this.form)); addorupdateFund(this.form).then(response => { console.log(response, "ä¿åè¿å"); if (response.code === 200) { this.$modal.msgSuccess("ç³è¯·åä¿åæåï¼"); this.$store.dispatch("tagsView/delView", this.$route); this.$router.push({ path: "/finance/performancedetails/", query: { id: response.data, businessType: "5", operationType: "update" } }); this.Routinglevel++; } else { this.$modal.msgError("ç³è¯·åä¿å失败ï¼" + response.msg); } }); //å ³éçªå£ this.loading = false; // this.getfundList(); } }); }, 500), //å®¡æ¹æäº¤ checksubmit() { let checkFundObj = { // fundid: this.checkObj.fundid, fundid: this.curId, flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion }; checkfund(checkFundObj).then(res => { //å ³éçªå£ this.reset(); this.$modal.msgSuccess("å®¡æ ¸å®æ!"); this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); }); }, // å ³éæé® cancel() { console.log(-this.Routinglevel); this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-this.Routinglevel); }, //è·åå½åç¨æ·ä¿¡æ¯ getUserProfile() { getUserProfile().then(res => { this.userprofile = res.data; this.standardlevel = res.data.standardlevel; if ( this.userprofile.userName == "admin" || this.userprofile.userName == "001" || this.userprofile.userName == "047" ) { 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.deptmentname = this.userprofile.dept.deptName; this.form.deptmentno = this.userprofile.dept.deptId; this.form.managername = this.userprofile.dept.leader; this.form.phone = this.userprofile.phonenumber; if (this.businessType == "4") { this.getUserAccount(); } } }); }, //è·åç³»ç»ç¨æ·å表 getUserList() { listUser().then(res => { this.userlist = res.data; }); }, //è·åææä¸å®¶/å»çæºæ/è´¹ç¨æ¥éæºæå表 getExternalList() { listExternalperson().then(res => { this.personlist = res.rows; for (let j = 0; j < this.personlist.length; j++) { //è·åè´¹ç¨æ¥éæºæå表 if (this.personlist[j].usertype == "org") { this.feeUnitList.push({ id: this.personlist[j].id, reportNo: this.personlist[j].userno, reportName: this.personlist[j].username, depositbank: this.personlist[j].depositbank, branchbankname: this.personlist[j].branchbankname, bankcardno: this.personlist[j].bankcardno }); } //ä¸å®¶äººåå表 else if (res.rows[j].usertype == "expert") { this.expertlist.push({ expertNo: this.personlist[j].id, exportName: this.personlist[j].username }); } } }); }, //è·åç»å人账å·ä¿¡æ¯ getUserAccount() { this.personlist.map(res => { if (res.username == this.form.username) { this.form.bankname = res.depositbank; //res.branchbanknameãres.depositbank; this.form.bankcardno = res.bankcardno; this.form.phone = res.telephone; } }); }, //è·åä¸å®¶äººåå表 getExpertList() { 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); }); } }, //è·åè´¹ç¨æºæå表 getFeeUnitList() { listReportname("org").then(res => { this.feeUnitList = res.data; console.log(this.feeUnitList); }); }, //è·åå»çæºæå表 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.donateList = response.rows; this.total = response.total; this.loading = false; }); }, //è·åæå¡è´¹ç¨ç±»åãæå¡é¡¹ç®ãæå¡è¯´æ getFeeTypes() { //è·åæå¡è´¹ç¨ç±»åãæå¡é¡¹ç® getFundTypeAll(5).then(res => { let dataList = res.data; //è·åæå¡è´¹ç¨æå¡é¡¹ç® this.feeItemTypes = dataList; console.log(this.feeItemTypes); //è·åæå¡è´¹ç¨ç±»å 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 }); } console.log(this.rowfeeItemTypes); console.log(this.feeItemTypes); }); //è·åæå¡è´¹ç¨è¯´æå表 this.loading = true; listItemexpense(this.expenseQueryParams).then(response => { response.rows.forEach(item => { this.feeBlocks.push({ servicesscope: JSON.stringify(item.id), itemid: item.itemid, expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe }); }); this.loading = false; }); }, //è·åæå¡é¡¹ç® getRowFeeItems(rowindex, row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; this.$set(this.rbDetails, rowindex, row); }, //å è½½æå¡é¡¹ç® verifyFeeItemType(row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); }, //æ ¡éªæ¶è´¹é¡¹ç® verifyFeeItem(row) { row.itemlist.map(res => { if (row.itemid === res.id) { row.remark = res.itemDescribe; row.itemcode = res.itemCode; } }); //夿æ¶è´¹é¡¹ç®æ¯å¦éå¤ var repeatNum = 0; this.rbDetails.map(res => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } }); if (repeatNum > 1) { this.$modal.msgWarning("æ¨å·²ç»æäº¤è¿è¯¥æå¡é¡¹ç®äº"); } //è·åè´¹ç¨é¡¹ç®ç详ç»ä¿¡æ¯ row.servicesscope = null; row.servicesscopename = ""; row.amount = 0.0; row.taxamount = 0.0; row.taxedamount = 0.0; row.rowfeeblocks = this.feeBlocks.filter(r => r.itemid == row.itemid); if (row.rowfeeblocks.length == 1) { row.servicesscope = row.rowfeeblocks[0].servicesscope; row.servicesscopename = row.rowfeeblocks[0].expensedescribe; if (row.servicesscopename.includes("ç¨å")) { row.amount = 0.0; row.taxamount = 0.0; row.taxedamount = row.rowfeeblocks[0].expense; } else { row.amount = row.rowfeeblocks[0].expense; row.taxamount = 0.0; row.taxedamount = 0.0; } } }, //çæ¥åºå¯¹åºçè´¹ç¨é¡¹ç® 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.rbDetails, rowindex, row); }); } }, //计ç®éé¢ calculateTax(row, type) { let targetValue = 0; for (let i = 0; i < this.rbDetails.length; i++) { if (!this.rbDetails[i].amount) { this.rbDetails[i].amount = 0; } targetValue += parseFloat(this.rbDetails[i].amount); // å设æ¯ä¸ªå¯¹è±¡ä¸çç¹å®å¼åå¨å¨'specificValue'屿§ä¸ } console.log(targetValue, "å计"); this.form.pretaxcost = targetValue; }, unsave() { this.Savereminder = false; this.Reminderquantity = 0; }, // æ¥åæéç«å»ä¿å Savenow() { if (!this.randomnumber) { this.randomnumber = this.generateRandomString(9); this.form.randomnumber = this.randomnumber; } this.Savereminder = false; this.Reminderquantity = 0; this.totalquantity = 0; 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.rbDetails.length; k++) { let tempDetail = this.rbDetails[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡é¡¹ç®æªéæ©ï¼è¯·å éæ©æå¡é¡¹ç®ååæäº¤ä¿åï¼" ); return; } if (this.businessType == "1") { if (tempDetail.servicesscope == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çè´¹ç¨è¯´ææªéæ©,è¯·éæ©è´¹ç¨è¯´æååæäº¤ä¿åï¼" ); return; } if (tempDetail.beneficiaryno == null) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (k + 1).toString() + "è¡çæå¡äººåå§åä¸ºéæ©,è¯·éæ©äººåååæäº¤ä¿åï¼" ); return; } } } //å¤çæç» for (let i = 0; i < this.rbDetails.length; i++) { let tempDetail = this.rbDetails[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.rbDetails[i] = tempDetail; } for (let j = 0; j < this.rbDetails.length; j++) { let tempDetail = this.rbDetails[j]; if ( isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0 ) { this.$modal.msgWarning( "æå¡é¡¹ç®è¡¨ä¸ï¼ç¬¬" + (j + 1).toString() + "è¡çé颿ªè¾å ¥ï¼è¯·å è¾å ¥éé¢ååæäº¤ä¿åï¼" ); return; } if ( isNaN(parseFloat(tempDetail.taxamount)) || parseFloat(tempDetail.taxamount) == 0 ) { tempDetail.taxedamount = parseFloat(tempDetail.amount); } else { tempDetail.taxedamount = parseFloat(tempDetail.amount) + parseFloat(tempDetail.taxamount); } } //ä¿åæ°æ® this.loading = true; this.form.serviceFunddetails = 0; this.rbDetails.map(item => { this.form.serviceFunddetails += item.amount; }); this.form.serviceFunddetails = this.rbDetails; if (this.form.id != null) { } else { this.form.recordstatus = -1; } addorupdateFund(this.form).then(response => { if (response.code === 200) { this.$modal.msgSuccess("ç³è¯·åä¿åæåï¼"); this.getroute(); this.getExternalList(); this.getUserList(); this.getUserProfile(); } else { this.$modal.msgError("ç³è¯·åä¿å失败ï¼" + response.msg); } }); //å ³éçªå£ this.loading = false; // this.getfundList(); } }); }, // å ¨é handleCheckAllChange(val) { this.checkedCities = val ? this.cityOptions : []; this.isIndeterminate = false; }, handleCheckedCitiesChange(value) { let checkedCount = value.length; this.checkAll = checkedCount === this.cityOptions.length; this.isIndeterminate = checkedCount > 0 && checkedCount < this.cityOptions.length; }, // æå¨è®¡ç® Manualcalculationfn() { ManualCalculation(this.rbDetails).then(res => { console.log(res); if (res.code == 200) { sessionStorage.removeItem("apiform"); sessionStorage.removeItem("apifunddetail"); sessionStorage.setItem( "apifunddetail", JSON.stringify(this.rbDetails) ); sessionStorage.setItem("apiform", JSON.stringify(this.form)); this.$router.go(0); } else { // this.$message({ // type: "error", // message: "ç³è¯·å¤±è´¥" // }); } }); }, // æ¹éå½å ¥ç¹å» Batchentry() { // ethical this.listperformance(); this.batchdialogVisible = true; }, listperformance() { listperformance(1).then(res => { this.cityOptions = res.data; this.listperformancea = []; this.listperformancea = this.cityOptions.map(item => { return { value: item.userName, label: item.userName }; }); console.log(this.cityOptions, "ç»©ææ¹é"); }); }, // 确认å½å ¥ BatchentryFn() { this.checkedCities.forEach(item => { let rowData = { orderno: null, fundid: null, beneficiaryname: item.userName, beneficiaryno: item.usertNo, unitname: item.unitname, unitno: null, uintuserno: null, title: item.title, idcardtype: null, idcardno: item.idcrad, sex: null, familyrelations: null, phone: null, depositbank: item.depositBank, bankcardno: item.bankCardNo, branchbankname: item.branchbankname, annexbankcard: null, annexregistform: null, applytype: "9", applytypename: "ç®¡çææ¬", itemid: 68, itemcode: "68", itemname: "绩æå·¥èµ", itemtype: null, amount: 200, 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: [{ id: 68, itemName: "绩æå·¥èµ" }], servicesscope: null, rowfeeblocks: [], annexfiles: null }; this.rbDetails.push(rowData); }); for (let i = 0; i < this.checkedCities.length + 1; i++) { this.rbDetails[i].orderno = i + 1; } this.calculateTax(); this.batchdialogVisible = false; console.log(this.rowfeeItemTypes); }, //æ°å¢ä¸è¡ addRow(rowIndex) { let rowData = { orderno: null, id: null, fundid: null, beneficiaryname: null, beneficiaryno: null, unitname: null, 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, itemcode: 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: [], annexfiles: null }; // if (this.Reminderquantity >= 5) { // this.Savereminder = true; // return; // } console.log(12); if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { this.rbDetails.push(rowData); console.log(13); } else { this.rbDetails.splice(rowIndex + 1, 0, rowData); console.log(14); } this.Reminderquantity++; this.totalquantity++; for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].orderno = i + 1; } }, deleteRows(row, index, rows) { this.$confirm("å 餿°æ®åå°ä¸è½æ¢å¤ï¼ç¡®è®¤è¦å é¤å?", "æç¤º", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "success" }) .then(() => { if (this.rbDetails.length == 1) { this.addRow(0); } 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.rbDetails, res.data); for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].orderno = i + 1; } this.calculateTax(); // this.rbDetails = res.data }); }); } }); } else { rows.splice(index, 1); this.calculateTax(); } }) .catch(() => { //å ç¹åæ¶çæç¤º }); //å ¨é¨å é¤åæ·»å 䏿¡æ°è¡ }, //ä¸å®¶/å»çæºæ/è´¹ç¨æ¥éæºæéæ© ShowDetailDialog(spoce, showType) { this.spocewl = spoce; this.selectionType = showType; this.selectionType = this.experthear; this.expertfrom = "1"; console.log(spoce); this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; 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.showSelectionDialog = true; }, //ä¸å®¶/å»çæºæ/è´¹ç¨æ¥éæºæéæ© ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempExpertName = this.funddetailForm.userName; let singleDetail = this.rbDetails[tempIndex]; //ä»ä¸å®¶å表è·åä¿¡æ¯ this.cityOptions.map(res => { if (tempExpertName == res.userName) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.userName; singleDetail.bankcardno = res.bankCardNo; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositBank; singleDetail.idcardno = res.bankCardNo; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } }); this.rbDetails[tempIndex] = singleDetail; this.showSelectionDialog = false; }, remoteMethod(query) { console.log(this.listperformancea); if (query !== "") { this.loadingperformance = true; setTimeout(() => { this.loadingperformance = false; this.optionsperformance = this.listperformancea.filter(item => { return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; }); }, 200); } else { this.optionsperformance = []; } } }, //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ created() { //è·åè·¯ç±åæ° this.getroute(); this.getExternalList(); this.getFeeUnitList(); this.listperformance(); }, //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå ç´ ï¼ mounted() { window.addEventListener("beforeunload", e => this.beforeunloadHandler(e)); this.getUserList(); this.getUserProfile(); }, destroyed() { window.removeEventListener("beforeunload", e => this.beforeunloadFn(e)); }, //çå½å¨æ - 鿝宿 activated() {} //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å }; </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: 400px; 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; } ::v-deep .el-alert__title { font-size: 25px; line-height: 25px; } ::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered { margin-left: 0 !important; margin-bottom: 10px; } </style> src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
@@ -63,6 +63,20 @@ </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="5"> <el-form-item label="æç®è " prop="donorname" style="float: left"> <el-input v-model="queryParams.donorname" placeholder="请è¾å ¥ç³è¯·äººæç®è " clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="6"> <el-button type="primary" @@ -128,11 +142,6 @@ prop="managername" width="150px" /> <!-- <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="230px" /> --> <!-- <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="160" /> --> <!-- <el-table-column label="ç¨åéé¢" align="center" prop="taxedcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="amountrequested" width="120px" /> <el-table-column label="颿¯è´¹ç¨" align="center" prop="prepaidamount" width="120px" /> --> <el-table-column label="å®¡æ ¸ç¶æ" align="center" @@ -173,7 +182,7 @@ fixed="right" align="center" class-name="small-padding fixed-width" width="160px" width="260px" > <template slot-scope="scope"> <el-button src/views/project/fundcheck/expertFeeCheck/index.vue
@@ -41,6 +41,17 @@ </el-col> --> </el-row> <el-row> <el-col :span="5"> <el-form-item label="æç®è " prop="donorname" style="float: left"> <el-input v-model="queryParams.donorname" placeholder="请è¾å ¥ç³è¯·äººæç®è " clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="3"> <div style="margin-bottom: 15px;"> <el-button @@ -105,7 +116,7 @@ <el-table-column label="夿³¨" align="center" prop="remark" /> <!--<el-table-column label="æç®ç¼å·" align="center" prop="donorno" /> <el-table-column label="è´¢å¡å®¡æ ¸" align="center" prop="financechecher" width="140" />--> <el-table-column label="æä½" fixed="right" align="center" class-name="small-padding fixed-width" width="160px"> <el-table-column label="æä½" fixed="right" align="center" class-name="small-padding fixed-width" width="260px"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.checkFlag == 0" @click="handleDetail(scope.row)">详æ </el-button> @@ -320,7 +331,7 @@ <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¡å·" /> </template> </el-table-column> <el-table-column fixed="right" align="center" label="æä½" width="120"> <el-table-column fixed="right" align="center" label="æä½" width="200"> <template slot-scope="scope"> <el-button @click="saveRows(scope.row, scope.$index)" type="text" size="small" v-if="show === 1"> ä¿å src/views/project/fundcheck/medicalCostCheck/index.vue
@@ -88,6 +88,17 @@ </el-col> --> </el-row> <el-row> <el-col :span="5"> <el-form-item label="æç®è " prop="donorname" style="float: left"> <el-input v-model="queryParams.donorname" placeholder="请è¾å ¥ç³è¯·äººæç®è " clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="4"> <div style="margin-bottom: 15px;"> <el-button @@ -720,7 +731,7 @@ fixed="right" align="center" label="æä½" width="120" width="200" > <template slot-scope="scope"> <el-button src/views/project/fundcheck/officeExpenseCheck/index.vue
@@ -69,6 +69,17 @@ </el-col> --> </el-row> <el-row> <el-col :span="5"> <el-form-item label="æç®è " prop="donorname" style="float: left"> <el-input v-model="queryParams.donorname" placeholder="请è¾å ¥ç³è¯·äººæç®è " clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="4"> <div style="margin-bottom: 15px;"> <el-button @@ -219,9 +230,9 @@ type="text" icon="el-icon-download" @click="totaldayin(scope.row.id)" v-hasPermi="['project:donateconsolationfund:download']" >ä¸è½½</el-button > <!-- v-hasPermi="['project:donateconsolationfund:download']" --> <!-- æ°å¢å®¡æ ¸é¡µé¢ --> <!-- <el-button src/views/project/fundcheck/performanceCheck/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,595 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px" > <el-row align="left"> <el-col :span="5"> <el-form-item label="ç»å人" prop="name"> <el-input v-model="queryParams.name" placeholder="请è¾å ¥ç»å人" clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="ç³è¯·æ¥æ" prop="createTime"> <el-date-picker format="yyyy-MM-dd" @change="selectapplication" value-format="yyyy-MM-dd" v-model="createTime" type="daterange" range-separator="è³" start-placeholder="ç³è¯·å¼å§æ¥æ" end-placeholder="ç³è¯·ç»ææ¥æ" @keyup.enter.native="flowconclusion" > </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="éé¢" prop="money" style="float: left"> <el-input v-model="queryParams.money" placeholder="请è¾å ¥ç³è¯·äººéé¢" clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="审æ¹ç¶æ" prop="CHECKFLAG" style="float: left"> <el-select v-model="queryParams.CHECKFLAG" placeholder="è¯·éæ©" style="width: 100%" > <el-option v-for="item in checkFlagOptions" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="4"> <div style="margin-bottom: 15px;"> <el-button type="primary" icon="el-icon-search" size="mini" @click="flowconclusion" >æç´¢</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >éç½®</el-button > </div> </el-col> </el-row> </el-form> <el-form ref="infoform" label-width="100px"> <el-row> <el-table v-loading="loading" border :data="donateconsolationfundList" @selection-change="handleSelectionChange" > <el-table-column label="ç³è¯·æ¥æ" width="180" align="center" prop="createTime" > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç»å人" align="center" prop="username" width="150px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="200px" /> <el-table-column label="绩æç±»å" width="150" align="center" prop="Performancetype" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_performance_type" :value="scope.row.Performancetype" /> </template> </el-table-column> <el-table-column label="å®¡æ ¸ç¶æ" align="center" prop="recordstatus" width="200" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> </template> </el-table-column> <el-table-column label="é¢å®¡ç¶æ" width="140" align="center" prop="checkstatus" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" /> </template> </el-table-column> <el-table-column label="夿³¨" align="center" prop="remark" /> <el-table-column label="æä½" fixed="right" align="center" class-name="small-padding fixed-width" width="260px" > <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.checkFlag == 0" @click="handleDetail(scope.row)" >详æ </el-button > <el-button v-if="scope.row.checkFlag == 1" size="mini" type="text" icon="el-icon-edit" @click="beforehandCheck(scope.row)" >é¢å®¡æ ¸</el-button > <el-button v-if="scope.row.checkFlag == 1" size="mini" type="text" icon="el-icon-edit" @click="handleCheck(scope.row)" >å®¡æ ¸</el-button > <!-- v-hasPermi="['project:donateconsolationfund:edit']" --> <el-button size="mini" type="text" icon="el-icon-download" @click="totaldayin(scope.row.id)" v-hasPermi="['project:donateconsolationfund:download']" >ä¸è½½</el-button > </template> </el-table-column> </el-table> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getlistbypower" /> </el-row> </el-form> </div> </template> <script> import { onelistFund, listFund, getFund, delFund, addFund, updateFund, exportFund, getdownloadLW, getdownloadSH, getdownloadSS, getdownloadYX, getdownloadBX, checkfund, listbypower, getdetailsByItemId, addFundSharedInfo } from "@/api/project/fund"; import { onelistFunds, listFunddetails, listFunddetail, getFunddetail, delFunddetail, addFunddetail, getownFundDetail, updateFunddetail, exportFunddetail, getItemNames, getFundType, getFundTypeAll, listcountItem } from "@/api/project/funddetail"; import { listOrganization, getOrganization, listReportname, listUser } from "@/api/project/organization"; import { listFundflow, getFundflow, delFundflow, addFundflow, updateFundflow, exportFundflow } from "@/api/project/fundflow"; import { listExternalperson, getExternalperson, getInfoBytheUserNo, delExternalperson, addExternalperson, updateExternalperson, exportExternalperson } from "@/api/project/externalperson"; import { listDonatebaseinfo, getDonatebaseinfo } from "@/api/project/donatebaseinfo"; import Li_area_select from "@/components/Address"; import OrgSelecter from "@/views/project/components/orgselect"; import { getUserProfile } from "@/api/system/user"; import { getToken } from "@/utils/auth"; import { setItem, grtItem, removeItem } from "@/utils/storage.js"; export default { components: { Li_area_select, OrgSelecter }, name: "Donateconsolationfund", dicts: [ "sys_recordstatus", "sys_OrganizationType", "sys_DonationStatus", "sys_depositbank", "sys_FamilyRelation", "sys_IDType", "sys_ConsolationType", "sys_fund_type", "sys_finsubject", "sys_financeitemtype", "sys_consolationfundlevel", "sys_stage_type" ], data() { return { arrr2: [], arrr3: [], //è´¹ç¨ç±»åæ°ç» fundtypeArr: [], show: 0, createTime: [], newobj: { flowlevelone: null, flowconclusion: null, fundid: null }, showFirstapprovelevel: false, showSecondapprovelevel: false, showThirdapprovelevel: false, bankprovince: { sheng: "", shi: "", qu: "", organizationname: null }, openbtn: true, isopen: 0, istrue: 1, reporters: [], lunlilaowu: [], arrid: [], a: "", idss: "", updatedatas: {}, //å½åé䏿ç®è å§å curdonordoname: "", //å½åé䏿ç®è æ¡ä¾ç¼å· curdonorno: "", // é®ç½©å± loading: true, // 导åºé®ç½©å± exportLoading: false, // é䏿°ç» ids: [], // éå个ç¦ç¨ single: true, // éå¤ä¸ªç¦ç¨ multiple: true, // æ¾ç¤ºæç´¢æ¡ä»¶ showSearch: true, // æ»æ¡æ° total: 0, // æç®äººéæ °é®éè¡¨æ ¼æ°æ® donateconsolationfundList: [], // å¼¹åºå±æ é¢ title: "", //æç®æ¡ä¾åè¡¨æ°æ® // donationCaseTableData:[], donatebaseinfoList: [], // æ¯å¦æ¾ç¤ºå¼¹åºå± open: false, checkFlagOptions: [ { value: 0, label: "已审æ¹" }, { value: 1, label: "å¾ å®¡æ¹" }, { value: 2, label: "å ¨é¨" } ], // æ¥è¯¢åæ° queryParams: { pageNum: 1, pageSize: 10, APPLICANT: null, APPLICATIONBEGTIME: null, APPLICATIONENDTIME: null, CHECKFLAG: 1, APPLYTYPE: 5, money: null }, // 表ååæ° form: {}, // è¡¨åæ ¡éª rules: { username: [ { required: true, message: "请è¾å ¥ç³è¯·äººå§å", trigger: "blur" } ], createTime: [ { required: true, message: "请è¾å ¥ç³è¯·æ¥æ", trigger: "blur" } ], amountrequested: [ { required: true, message: "请è¾å ¥ç³è¯·éé¢", trigger: "blur" } ] }, //å½åéä¸æç®æ¡ä¾ curCase: {}, //æ¯å¦æ¾ç¤ºè´¹ç¨ç³è¯·å¼¹çª dialogOpen: false, // title: "", //è´¹ç¨ç³è¯·è¡¨åtitle applyFormTitle: "", //è´¹ç¨ç³è¯·åform applicationForm: {}, fundDetailArr: [], fundflowList: [], organspeciallist: [], yitibody: [], donoryixue: [], jiashumoney: [], itemArr: [], allnum: [], userlist: [], approveLevel: 5, fundtypeArrAll: [], dialogType: "edit", //éä»¶å表 fileList: [], //ä¸ä¼ éä»¶è·¯å¾ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", headers: { Authorization: "Bearer " + getToken() } }; }, watch: {}, created() { this.resetForm(); this.getUsermsg(); }, mounted() { if (grtItem("officeExpenseCheck")) { this.queryParams = grtItem("officeExpenseCheck"); } this.getlistOrganization(); //his.getlistUser(); this.getlistbypower(); }, methods: { selectapplication() { this.queryParams.APPLICATIONBEGTIME = this.createTime[0]; this.queryParams.APPLICATIONENDTIME = this.createTime[1]; }, getlistbypower() { this.loading = true; // this.queryParams.params = {}; console.log("this.queryParams", this.queryParams); listbypower(this.queryParams).then(res => { removeItem("officeExpenseCheck"); setItem("officeExpenseCheck", this.queryParams); this.loading = false; let list = res.rows; this.total = res.total; this.donateconsolationfundList = list; }); }, getlistOrganization() { listOrganization().then(res => {}); }, 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" }); } }); }, isopenvalue(index) { this.isopen = index; }, tojust(e) { let username = "111"; getFund(e).then(res => { username = res.data.username; this.$modal .confirm('æ¯å¦ç¡®è®¤éè¿"' + username + '"çè´¹ç¨ç³è¯·ï¼') .then(function() { getFund(e).then(res => { let data = res.data; let financechecher = "å·²å®¡æ ¸"; data.financechecher = financechecher; // data.recordstatus = "é¨é¨å·²éè¿"; const username = data.username; return updateFund(data); }); }) .then(() => { this.getList(); this.getlistbypower(); this.$modal.msgSuccess("å®¡æ ¸æå"); }); }); }, /** æç´¢æé®æä½ */ flowconclusion() { this.queryParams.pageNum = 1; this.getlistbypower(); }, /** éç½®æé®æä½ */ resetQuery() { this.daterangeReporttime = []; this.resetForm("queryForm"); this.getlistbypower(); }, // å¤éæ¡é䏿°æ® handleSelectionChange(selection) { this.ids = selection.map(item => item.id); this.single = selection.length !== 1; this.multiple = !selection.length; }, beforehandCheck(row) { this.$router.push({ path: "/finance/performancedetails/", query: { id: row.id, businessType: "5", beforehandType: "1", operationType: "check" } }); }, /** å®¡æ ¸æé®æä½ */ handleCheck(row) { this.$router.push({ path: "/finance/performancedetails/", query: { id: row.id, businessType: "5", operationType: "check" } }); return; }, //æ¥çå®¡æ ¸è¯¦æ handleDetail(row) { this.$router.push({ path: "/finance/performancedetails/", query: { id: row.id, businessType: "5", operationType: "detail" } }); return; }, getto() { const infoid = this.curCase.id; const aaa = { infoid: infoid, count: this.idss }; listFunddetails(aaa).then(res => {}); }, getUsermsg() { getUserProfile().then(response => { // this.defaultperson = response.data; // this.standardlevel = response.data.standardlevel; if ( response.data.userName === "001" || response.data.userName === "002" || response.data.userName === "admin" ) { this.show = 1; } else { this.show = 3; } }); }, } }; </script> src/views/project/travelexpenseapply/index.vue
@@ -68,6 +68,19 @@ </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="5"> <el-form-item label="æç®è " prop="donorname" style="float: left"> <el-input v-model="queryParams.donorname" placeholder="请è¾å ¥ç³è¯·äººæç®è " clearable size="small" @keyup.enter.native="flowconclusion" /> </el-form-item> </el-col> <el-col :span="4"> <el-form-item> <el-button