| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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 |
| | | 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" |
| | | clearable |
| | | filterable |
| | | allow-create |
| | | ref="getReportname" |
| | | default-first-option |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in personsList" |
| | | :key="item.reportNo" |
| | | :label="item.reportName" |
| | | :value="item.reportName" |
| | | > |
| | | </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="æå±ç»å«" /> |
| | | <!--<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="è¯·éæ©å½å±é¨é¨" />--> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="ç»é¿" prop="managername"> |
| | | <el-input v-model="form.managername" placeholder="ç»é¿" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="15"> |
| | | <el-form-item label="åºå·®äºç±" prop="reason"> |
| | | <el-input v-model="form.reason" placeholder="åºå·®äºç±" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®è
" prop="infoid"> |
| | | <el-select |
| | | v-model="form.infoid" |
| | | @change="selectbaseinfo" |
| | | filterable |
| | | placeholder="è¯·éæ©æç®è
" |
| | | > |
| | | <el-option |
| | | v-for="item in baselist" |
| | | :key="item.index" |
| | | :label="item.name" |
| | | :value="item.infoid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¥ééé¢" prop="amountrequested"> |
| | | <el-input |
| | | :disabled="true" |
| | | v-model="form.amountrequested" |
| | | placeholder="æ¥éå计éé¢" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="大åéé¢" prop="bigstrmoney"> |
| | | <el-input |
| | | :disabled="true" |
| | | v-model="form.bigstrmoney" |
| | | placeholder="æ¥é大åéé¢" |
| | | /> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="5"> |
| | | <el-form-item label="å®¡æ ¸ç¶æ" prop="flowlevel"> |
| | | <el-select |
| | | v-model="form.recordstatus" |
| | | placeholder="è¯·éæ©å®¡æ ¸ç¶æ" |
| | | clearable |
| | | :disabled="true" |
| | | size="small" |
| | | > |
| | | <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> |
| | | <el-col :span="15"> |
| | | <el-form-item label="åºå·®äºç±" prop="reason"> |
| | | <el-input v-model="form.reason" placeholder="åºå·®äºç±" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¥éåç±»" prop="costtype"> |
| | | <el-select v-model="form.costtype" value-key="value" placeholder="è¯·éæ©åºå·®äººåç±»" @change="getTravelers"> |
| | | <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="åºå·®äºº" prop="travelers"> |
| | | <el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname" |
| | | default-first-option placeholder="è¯·éæ©" @change="getAccountinfo()"> |
| | | <el-option v-for="item in travelers" :key="item.reportNo" :label="item.reportName" |
| | | :value="item.reportName"> |
| | | </el-option> |
| | | </el-select> |
| | | </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-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="èç³»çµè¯" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20"><el-divider></el-divider></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å®¶å±è´¹ç¨" prop="donoramount"> |
| | | <el-input :disabled="true" v-model="form.donoramount" placeholder="å®¶å±è´¹ç¨" @blur=" |
| | | (val) => { |
| | | sumTotalFee(); |
| | | } |
| | | " onchange="if(/[^0-9.]/.test(this.value)){alert('请æ£ç¡®è¾å
¥æ´æ°æ°åæå°æ°ï¼');this.value='';}" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="15"> |
| | | <el-form-item label="è´¹ç¨è¯´æ" prop="donorremark"> |
| | | <el-input :disabled="true" v-model="form.donorremark" placeholder="å®¶å±è´¹ç¨è¯´æ" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å®¶å±äººæ°" prop="donorrelatives"> |
| | | <el-input v-model="form.donorrelatives" placeholder="å®¶å±äººæ°" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¶æ¬¾äºº" prop="donorpayee"> |
| | | <el-input v-model="form.donorpayee" placeholder="äº²å±æ¶æ¬¾äºº" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¶æ¬¾é¶è¡" prop="donorbank"> |
| | | <el-input v-model="form.donorbank" placeholder="å®¶å±é¶è¡" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="é¶è¡å¡å·" prop="donorbankcard"> |
| | | <el-input v-model="form.donorbankcard" placeholder="é¶è¡å¡å·" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | --> |
| | | <!-- |
| | | <el-row type="flex" :gutter="10" align="right" class="mb8"> |
| | | <el-col :span="6"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="addDetailRow" |
| | | >æ°å¢ä¸è¡</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | --> |
| | | <el-row style="margin-top: 25px; margin-bottom: 5px"> |
| | | <el-col :span="20">æ¥éæç»å½å
¥ï¼</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-table :data="rbDetails" border highlight-current-row show-summary> |
| | | <el-table-column |
| | | prop="orderno" |
| | | slot="" |
| | | label="åºå·" |
| | | align="center" |
| | | fixed |
| | | width="65" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.orderno" placeholder="åºå·" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!--主é®ãå¤ä¸å±ç¤º--> |
| | | <el-table-column |
| | | prop="id" |
| | | slot="" |
| | | label="主é®" |
| | | align="center" |
| | | fixed |
| | | width="95" |
| | | v-if="false" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.id" placeholder="id" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="rbid" |
| | | slot="" |
| | | label="å¤é®" |
| | | align="center" |
| | | fixed |
| | | width="95" |
| | | v-if="false" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.rbid" placeholder="rbid" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="persontype" |
| | | slot="" |
| | | label="人åç±»å«" |
| | | align="center" |
| | | fixed |
| | | width="130" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.persontype" |
| | | value-key="value" |
| | | placeholder="人åç±»å«" |
| | | @change="getPersons(scope.row)" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_travelexpensebelong" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.label" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="personname" |
| | | slot="" |
| | | label="è´¹ç¨äººå" |
| | | align="center" |
| | | fixed |
| | | width="110" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.personname" |
| | | clearable |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | placeholder="è¯·éæ©" |
| | | @focus1="getPersons(scope.row)" |
| | | > |
| | | <el-option |
| | | v-for="item in personsSel" |
| | | :key="item.reportNo" |
| | | :label="item.reportName" |
| | | :value="item.reportName" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="starttime" |
| | | slot="" |
| | | label="å¼å§æ¥æ" |
| | | fixed |
| | | align="center" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | :picker-options="{ |
| | | disabledDate: time => { |
| | | if (scope.row.endtime) { |
| | | return ( |
| | | time.getTime() > |
| | | new Date(scope.row.endtime.replace(/-/g, '/')) |
| | | ); |
| | | } |
| | | } |
| | | }" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="scope.row.starttime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¥æ" |
| | | @blur="getdays(scope.row)" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="endtime" |
| | | slot="" |
| | | label="ç»ææ¥æ" |
| | | align="center" |
| | | fixed |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | :picker-options="{ |
| | | disabledDate: time => { |
| | | if (scope.row.starttime) { |
| | | return ( |
| | | time.getTime() < |
| | | new Date(scope.row.starttime.replace(/-/g, '/')) |
| | | ); |
| | | } |
| | | } |
| | | }" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="scope.row.endtime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¥æ" |
| | | @blur="getdays(scope.row)" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="departure" |
| | | slot="" |
| | | label="åºåå°" |
| | | align="center" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.departure" placeholder="åºåå°" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å°è¾¾å°" |
| | | prop="destination" |
| | | align="center" |
| | | width="140" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-input v-model="scope.row.destination" placeholder="å°è¾¾å°" @blur="getallowance(scope.row)" /> --> |
| | | <el-select |
| | | filterable |
| | | allow-create |
| | | v-model="scope.row.destination" |
| | | value-key="value" |
| | | placeholder="å°è¾¾å°" |
| | | @change="getallowance(scope.row)" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_area_name" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.label" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="days" label="天æ°" width="65" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.days" |
| | | @blur="getallowance(scope.row)" |
| | | placeholder="天æ°" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="traffictype" |
| | | label="åºå交éå·¥å
·" |
| | | align="center" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.traffictype" |
| | | placeholder="åºå交éå·¥å
·" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_traffictype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.label" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="traffictype2" |
| | | label="è¿å交éå·¥å
·" |
| | | align="center" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.traffictype2" |
| | | placeholder="è¿å交éå·¥å
·" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_traffictype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.label" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="trafficexpense" |
| | | label="交éè´¹" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.trafficexpense" |
| | | placeholder="交éè´¹" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | <el-table-column prop="cityfee" label="å¸å
交éè´¹" align="center" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.cityfee" placeholder="å¸å
交éè´¹" @blur=" |
| | | (val) => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | ">{{ Number(scope.row.cityfee).toFixed(2) }} |
| | | </el-input> |
| | | </template> |
| | | </el-table-column> |
| | | --> |
| | | <el-table-column |
| | | prop="hotelexpense" |
| | | label="ä½å®¿è´¹" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.hotelexpense" |
| | | placeholder="ä½å®¿è´¹" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="foodexpenses" |
| | | label="é¤è´¹æ¥é" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.foodexpenses" |
| | | placeholder="ä¼é£è´¹æ¥é" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="foodallowance" |
| | | label="ä¼é£è¡¥å©" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.foodallowance" |
| | | placeholder="ä¼é£è´¹è¡¥å©" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="otherexpense" |
| | | label="å
¬æè´¹è¡¥å©" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.otherexpense" |
| | | placeholder="æè´¹" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="otherfeeamount" |
| | | label="å
¶ä»è´¹ç¨" |
| | | align="center" |
| | | width="90" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.otherfeeamount" |
| | | placeholder="å
¶ä»è´¹ç¨" |
| | | @blur=" |
| | | val => { |
| | | sumRowFee(scope.row); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="departure" |
| | | slot="" |
| | | label="å
¶ä»è´¹ç¨è¯´æ" |
| | | align="center" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.otherfeedesc" |
| | | placeholder="å
¶ä»è´¹ç¨è¯´æ" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="total" |
| | | label="å计" |
| | | align="center" |
| | | width="110" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.total" placeholder="å计" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="æä½" |
| | | align="center" |
| | | width="120" |
| | | v-if="dialogType == 'edit'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="addDetailRow(scope.$index)" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button |
| | | @click.native.prevent=" |
| | | deleteDetailRow(scope.$index, rbDetails, scope.row) |
| | | " |
| | | type="text" |
| | | size="small" |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | <el-button |
| | | @click.native.prevent=" |
| | | Filepopup(scope.$index, rbDetails, scope.row) |
| | | " |
| | | type="text" |
| | | size="small" |
| | | > |
| | | æä»¶ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <el-row style="margin-top: 25px; margin-bottom: 5px"> |
| | | <el-col :span="20">æ¥é请款æç»ï¼</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 30px"> |
| | | <el-table :data="rbPayees" border highlight-current-row show-summary> |
| | | <el-table-column |
| | | prop="orderno" |
| | | slot="" |
| | | label="åºå·" |
| | | align="center" |
| | | fixed |
| | | width="65" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.orderno" placeholder="åºå·" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!--主é®ãå¤é®ä¸å±ç¤º--> |
| | | <el-table-column |
| | | prop="id" |
| | | slot="" |
| | | label="主é®" |
| | | align="center" |
| | | fixed |
| | | width="95" |
| | | v-if="false" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.id" placeholder="id" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="rbid" |
| | | slot="" |
| | | label="å¤é®" |
| | | align="center" |
| | | fixed |
| | | width="95" |
| | | v-if="false" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.rbid" placeholder="rbid" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="persontype" |
| | | slot="" |
| | | label="人åç±»å«" |
| | | align="center" |
| | | fixed |
| | | width="130" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.persontype" |
| | | value-key="value" |
| | | placeholder="人åç±»å«" |
| | | @change="getPersons(scope.row)" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_travelexpensebelong" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.label" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="personname" |
| | | slot="" |
| | | label="æ¶æ¬¾äºº" |
| | | align="center" |
| | | fixed |
| | | width="110" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.personname" |
| | | clearable |
| | | filterable |
| | | allow-create |
| | | ref="getReportname" |
| | | default-first-option |
| | | placeholder="è¯·éæ©" |
| | | @change="getAccountinfo2(scope.row, scope.row.persontype)" |
| | | > |
| | | <el-option |
| | | v-for="item in personsSel" |
| | | :key="item.reportNo" |
| | | :label="item.reportName" |
| | | :value="item.reportName" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="bankname" |
| | | slot="" |
| | | label="é¶è¡åç§°" |
| | | align="center" |
| | | fixed |
| | | width="200" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.bankname" placeholder="é¶è¡åç§°" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="bankcardno" |
| | | slot="" |
| | | label="é¶è¡å¡å·" |
| | | align="center" |
| | | fixed |
| | | width="200" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.bankcardno" |
| | | placeholder="é¶è¡å¡å·" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="amount" |
| | | slot="" |
| | | label="ææ¬¾éé¢" |
| | | align="center" |
| | | fixed |
| | | width="130" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.amount" placeholder="ææ¬¾éé¢" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="remark" |
| | | slot="" |
| | | label="请款说æ" |
| | | align="center" |
| | | fixed |
| | | width="280" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.remark" placeholder="说æ" /> |
| | | </template> </el-table-column |
| | | ><el-table-column |
| | | prop="paiddate" |
| | | slot="" |
| | | label="ææ¬¾æ¥æ" |
| | | fixed |
| | | align="center" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="scope.row.paiddate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ææ¬¾æ¥æ" |
| | | :disabled="true" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="100" |
| | | v-if="dialogType == 'edit'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="addPayeeRow(scope.$index)" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button |
| | | @click.native.prevent=" |
| | | deletePayeeRow(scope.$index, rbPayees, scope.row) |
| | | " |
| | | type="text" |
| | | size="small" |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </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 @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <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 class="container"> |
| | | <pdf :src="iframeurl"></pdf> |
| | | </div> --> |
| | | <!-- <embed :src="iframeurl" type="application/pdf" width="1000" height="800" /> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import pdf from "vue-pdf"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import { listDonatebaseinfo } from "@/api/project/donatebaseinfo"; |
| | | import { |
| | | listReimbursementpayee, |
| | | addReimbursementpayee, |
| | | updateReimbursementpayee |
| | | } from "@/api/project/reimbursementpayee"; |
| | | import { |
| | | listReimbursement, |
| | | getReimbursement, |
| | | delReimbursement, |
| | | addReimbursement, |
| | | updateReimbursement, |
| | | exportReimbursement, |
| | | getdownload, |
| | | fundSubmit |
| | | } from "@/api/project/reimbursement"; |
| | | import { |
| | | addReimbursementdetail, |
| | | updateReimbursementdetail, |
| | | listReimbursementdetailid, |
| | | getReimbursementdetaillist, |
| | | delReimbursementdetail, |
| | | addOrupdateReimbursementdetaillist, |
| | | getTravelStandard |
| | | } from "@/api/project/reimbursementdetail"; |
| | | import { listFundflow } from "@/api/project/fundflow"; |
| | | import { getInfoBytheUserNo } from "@/api/project/externalperson"; |
| | | import { regionDataPlus, CodeToText } from "element-china-area-data"; |
| | | import Li_area_select from "@/components/Address"; |
| | | import { getUser, getUserProfile } from "@/api/system/user"; |
| | | import { treeselect } from "@/api/system/dept"; |
| | | import { getSubsidy } from "@/api/project/travelcity"; |
| | | import { listReportname, listUser } from "@/api/project/organization"; |
| | | import { getToken } from "@/utils/auth"; |
| | | export default { |
| | | components: { |
| | | Treeselect, |
| | | Li_area_select, |
| | | pdf |
| | | }, |
| | | name: "Funddetail", |
| | | dicts: [ |
| | | "sys_finsubject", |
| | | "sys_0_1", |
| | | "sys_fund_type", |
| | | "sys_financeitemtype", |
| | | "sys_recordstatus", |
| | | "sys_travelexpensebelong", |
| | | "sys_traffictype", |
| | | "sys_area_name" |
| | | ], |
| | | data() { |
| | | return { |
| | | //OPOåè°å |
| | | personsXty: [], |
| | | //OPOä¸è人å |
| | | personsZzry: [], |
| | | //OPO管ç人å |
| | | personsManager: [], |
| | | //OPOä¸å®¶ |
| | | personsExpert: [], |
| | | //å
¨é¨äººå |
| | | personsList: [], |
| | | //䏿å¯ä»¥éæ©äººåå表 |
| | | personsSel: [], |
| | | // é¨é¨æ é项 |
| | | deptOptions: undefined, |
| | | pdftitle: "", |
| | | pdfimg: "", |
| | | pdfVisible: false, |
| | | costtypeobj: { |
| | | value: 0, |
| | | label: "" |
| | | }, |
| | | hintitle: "éä¸å·¦ä¾§å·²ä¸ä¼ æä»¶é¢è§æ¥ç", |
| | | atpresent: "", |
| | | iframeurl: "", |
| | | options: regionDataPlus, |
| | | selectedOptions: [], |
| | | searchAddress: { |
| | | sheng: "", |
| | | shi: "", |
| | | qu: "" |
| | | }, |
| | | value1: "", |
| | | previewpdf: false, |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // 导åºé®ç½©å± |
| | | exportLoading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // è´¹ç¨ç³è¯·æç»è¡¨æ ¼æ°æ® |
| | | funddetailList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | queryParams2: { |
| | | persontype: null, |
| | | arriveAddr: null |
| | | }, |
| | | feesParams: { |
| | | beneficiaryNo: null, |
| | | starttime: null, |
| | | endtime: null |
| | | }, |
| | | //æ¥è¯¢ä»æ¬¾ |
| | | queryParamsPayee: { |
| | | rbid: null |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | reimbursementList: [], |
| | | |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | createTime: [ |
| | | { required: true, message: "请è¾å
¥å¡«æ¥æ¥æ", trigger: "blur" } |
| | | ], |
| | | reason: [ |
| | | { required: true, message: "请è¾å
¥åºå·®äºç±", trigger: "blur" } |
| | | ], |
| | | deptmentname: [ |
| | | { required: true, message: "请è¾å
¥æå±ä¸å¡ç»", trigger: "blur" } |
| | | ] |
| | | }, |
| | | //è´¹ç¨ç³è¯·åform |
| | | applicationForm: { |
| | | applicationType: null, |
| | | donorno: null, |
| | | donorname: null, |
| | | bigstrmoney: null |
| | | }, |
| | | |
| | | rbDetails: [], |
| | | rbPayees: [], |
| | | arrr2: [], |
| | | baselist: [], |
| | | donatorList: [], |
| | | standardlevel: 0, |
| | | defaultperson: {}, |
| | | fundflowList: [], |
| | | showApproveRecordDialog: false, |
| | | dialogType: "edit", |
| | | |
| | | //ä¸ä¼ å票æä»¶è·¯å¾ |
| | | uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | //æä»¶å表 |
| | | fileList: [], |
| | | fileListto: [], |
| | | //人åç±»å« |
| | | persontype: null, |
| | | //å°è¾¾å° |
| | | arriveAddr: null, |
| | | |
| | | headers: { |
| | | Authorization: "Bearer " + getToken() |
| | | } |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | //è·åè®°å½å表 |
| | | this.getList(); |
| | | this.gainee(); |
| | | //è·åæ¥éä¸ç人åä¿¡æ¯ |
| | | this.getPersonList(); |
| | | }, |
| | | |
| | | mounted() { |
| | | //è·åæç®è
å§å |
| | | listDonatebaseinfo().then(res => { |
| | | let list = res.rows; |
| | | let baseinfolist = []; |
| | | this.donatorList = list; |
| | | list.forEach(element => { |
| | | baseinfolist.push({ |
| | | infoid: element.id, |
| | | name: element.name |
| | | }); |
| | | }); |
| | | |
| | | if (baseinfolist != 0) { |
| | | this.baselist = baseinfolist; |
| | | } |
| | | }); |
| | | |
| | | //è·åç»å½è
ä¿¡æ¯ |
| | | this.getUsermsg(); |
| | | //è·åé¨é¨ä¿¡æ¯ |
| | | //this.getTreeselect(); |
| | | }, |
| | | |
| | | methods: { |
| | | handleUploadError() {}, |
| | | |
| | | remove(file, fileList) { |
| | | const rbDetails = [...this.rbDetails]; |
| | | this.fileListto.splice(this.fileListto.indexOf(file), 1); |
| | | console.log(file); |
| | | console.log(this.fileListto); |
| | | rbDetails[this.atpresent].annexfilesList = this.fileListto; |
| | | }, |
| | | |
| | | handleExceed() { |
| | | this.$message.error(`ä¸ä¼ æä»¶æ°éä¸è½è¶
è¿ ${5} 个!`); |
| | | }, |
| | | |
| | | //æä»¶ä¸ä¼ æååè° |
| | | uploadSccess(response, file, fileList) { |
| | | console.log(response); |
| | | console.log(file); |
| | | console.log(fileList); |
| | | this.rbDetails; |
| | | |
| | | //è·åéä»¶ä¿¡æ¯ä½ç½® |
| | | if (response.code == 200) { |
| | | this.form.filename = file.raw.name; |
| | | console.log(this.fileList); |
| | | |
| | | this.$modal.msgSuccess(response.msg); |
| | | this.fileListto.push({ name: file.name, url: response.url }); |
| | | console.log(this.fileListto); |
| | | this.rbDetails[this.atpresent].annexfilesList = this.fileListto; |
| | | } else { |
| | | this.$modal.msgError(response.msg); |
| | | } |
| | | }, |
| | | // ç¹å»æä»¶ |
| | | Filepopup(index, rows, row) { |
| | | console.log(index, rows, row); |
| | | this.atpresent = index; |
| | | console.log(this.atpresent); |
| | | this.pdfVisible = true; |
| | | if (this.rbDetails[index].annexfilesList) { |
| | | this.fileListto = this.rbDetails[index].annexfilesList; |
| | | } else { |
| | | this.fileListto = []; |
| | | this.pdfimg = ""; |
| | | this.pdftitle = ""; |
| | | } |
| | | }, |
| | | |
| | | // ç¹å»å·²ä¸ä¼ æä»¶ |
| | | downFile(item) { |
| | | console.log(item); |
| | | this.pdftitle = item.name; |
| | | let name = item.name.split("."); |
| | | if (name[1] == "pdf") { |
| | | this.$modal.msgWarning("å½åæä»¶æä¸æ¯æé¢è§"); |
| | | this.previewpdf = false; |
| | | this.hintitle = "å½åæä»¶æä¸æ¯æé¢è§"; |
| | | } else if (name[1] == "jpg" || "png") { |
| | | this.previewpdf = true; |
| | | if (item.url) { |
| | | this.pdfimg = item.url; |
| | | } else { |
| | | this.pdfimg = item.response.url; |
| | | } |
| | | } else { |
| | | this.hintitle = "å½åæä»¶æä¸æ¯æé¢è§"; |
| | | this.$modal.msgWarning("å½åæä»¶æä¸æ¯æé¢è§"); |
| | | this.previewpdf = false; |
| | | } |
| | | }, |
| | | |
| | | //è·åç»å½ç¨æ·ä¿¡æ¯ |
| | | getUsermsg() { |
| | | getUserProfile().then(response => { |
| | | this.defaultperson = response.data; |
| | | this.standardlevel = response.data.standardlevel; |
| | | }); |
| | | }, |
| | | |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | | getTreeselect() { |
| | | treeselect().then(response => { |
| | | this.deptOptions = response.data; |
| | | }); |
| | | }, |
| | | |
| | | //è·å人åå表 |
| | | getPersonList() { |
| | | //è·åOPOåè°ååå |
| | | listReportname("xty1").then(res => { |
| | | this.personsXty = res.data; |
| | | this.personsList = this.personsXty; |
| | | |
| | | //OPOä¸è人ååå |
| | | listReportname("zzry").then(res => { |
| | | this.personsZzry = res.data; |
| | | this.personsList = this.personsList.concat(this.personsZzry); |
| | | |
| | | //OPO管ç人ååå |
| | | listReportname("fzr").then(res => { |
| | | this.personsManager = res.data; |
| | | this.personsList = this.personsList.concat(this.personsManager); |
| | | |
| | | //OPOä¸å®¶åå |
| | | listReportname("expert").then(res => { |
| | | this.personsExpert = res.data; |
| | | this.personsList = this.personsList.concat(this.personsExpert); |
| | | }); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | //è·åä¸ä¸ªç±»å«ç人åå表 |
| | | getPersons(row) { |
| | | //ä¸è人å-1,åè°å-2,ä¸å®¶-3,å®¶å±-4,å
¶ä»äººå-5 |
| | | let tmpList = null; |
| | | if (row.persontype == "ä¸è人å") { |
| | | this.personsSel = this.personsZzry; |
| | | } else if (row.persontype == "åè°å") { |
| | | this.personsSel = this.personsXty; |
| | | } else if (row.persontype == "ä¸å®¶") { |
| | | this.personsSel = this.personsExpert; |
| | | } else if (row.persontype == "å®¶å±") { |
| | | this.personsSel = tmpList; |
| | | } else if (row.persontype == "管ç人å") { |
| | | this.personsSel = this.personsManager; |
| | | } |
| | | }, |
| | | |
| | | //è·å设置人åè´¦å·ä¿¡æ¯ |
| | | getAccountinfo() { |
| | | this.coltravelers.map(res => { |
| | | if (res.reportName == this.form.travelers) { |
| | | getInfoBytheUserNo(res.reportNo).then(res => { |
| | | this.form.depositbank = res.data.depositbank; |
| | | this.form.bankcardno = res.data.bankcardno; |
| | | this.form.phone = res.data.telephone; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //è·å设置人åè´¦å·ä¿¡æ¯ |
| | | getAccountinfo2(row, personType) { |
| | | let dataArr = []; |
| | | if (personType == "ä¸è人å") { |
| | | dataArr = this.personsZzry; |
| | | } else if (personType == "åè°å") { |
| | | dataArr = this.personsXty; |
| | | } else if (personType == "ä¸å®¶") { |
| | | dataArr = this.personsExpert; |
| | | } else if (personType == "管ç人å") { |
| | | dataArr = this.personsManager; |
| | | } |
| | | |
| | | for (let m = 0; m < dataArr.length; m++) { |
| | | if (dataArr[m].reportName == row.personname) { |
| | | row.bankname = dataArr[m].depositbank; |
| | | row.bankcardno = dataArr[m].bankcardno; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //è®¡ç®æ¥æ |
| | | getdays(row) { |
| | | if ( |
| | | row.starttime != "" && |
| | | row.starttime != null && |
| | | row.endtime != "" && |
| | | row.endtime != null |
| | | ) { |
| | | //计ç®å¤©æ° |
| | | row.days = ( |
| | | Math.floor( |
| | | Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / |
| | | (1000 * 3600 * 24) |
| | | ) + 1 |
| | | ).toString(); |
| | | } else { |
| | | row.days = 0; |
| | | } |
| | | |
| | | //计ç®è¡¥å© |
| | | this.getallowance(row); |
| | | }, |
| | | |
| | | //计ç®è¡¥å© |
| | | getallowance(row) { |
| | | console.log("ro", row); |
| | | //å
¬æè´¹è¡¥å©ï¼æå·æ¡åºï¼å»ºå¾·ï¼æ·³å®60ï¼æå·å
¶ä»å°åº0ï¼éæå·å°åº80 |
| | | if (row.destination != "") { |
| | | var tempStr = row.destination; |
| | | |
| | | //éªè¯åå¸ |
| | | if (tempStr == "æå·") { |
| | | row.otherexpense = ""; |
| | | } else if ( |
| | | tempStr == "æå·-æ¡åº" || |
| | | tempStr == "æå·-建德" || |
| | | tempStr == "æå·-æ·³å®" |
| | | ) { |
| | | row.otherexpense = (parseInt(row.days) * 60).toString(); |
| | | } else { |
| | | row.otherexpense = (parseInt(row.days) * 80).toString(); |
| | | } |
| | | } |
| | | |
| | | //ä¼é£è´¹è¡¥å©ï¼åå¸ï¼è¥¿èï¼æ°çï¼éæµ·.120ï¼ï¼å
¶ä»100ï¼ |
| | | row.foodallowance = (parseInt(row.days) * 100).toString(); |
| | | |
| | | //计ç®å计 |
| | | this.sumRowFee(row); |
| | | }, |
| | | |
| | | getStandard(row) { |
| | | if ( |
| | | row.searchAddress.sheng != "" && |
| | | row.searchAddress.shi != "" && |
| | | row.searchAddress.qu != "" && |
| | | row.starttime != "" && |
| | | row.starttime != null && |
| | | row.days != "" |
| | | ) { |
| | | //计ç®ä½å®¿è´¹ |
| | | let info = { |
| | | pabegindate: this.$moment(row.starttime).format("YYYY-MM-DD"), |
| | | pacitycode: this.$refs["residenceSelect_" + row.index].getShi(), |
| | | paenddate: this.$moment(row.starttime) |
| | | .add(row.days, "day") |
| | | .format("YYYY-MM-DD"), |
| | | paprovincecode: this.$refs["residenceSelect_" + row.index].getSheng(), |
| | | patowncode: this.$refs["residenceSelect_" + row.index].getQu(), |
| | | standardlevel: this.standardlevel |
| | | }; |
| | | |
| | | getTravelStandard(info) |
| | | .then(response => { |
| | | let fee = 0; |
| | | for (let i = 0; i < response.data.length; i++) { |
| | | fee += response.data[i].reimbursementamout; |
| | | } |
| | | row.hotelexpense = fee; |
| | | }) |
| | | .finally(() => { |
| | | this.sumTotalFee(); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | selcetdestination(row) { |
| | | console.log("ç®çå°éæ©äºä»¶", row, row.searchAddress); |
| | | //row.searchAddress = this.searchAddress; |
| | | if ( |
| | | row.searchAddress.sheng != "" && |
| | | row.searchAddress.shi != "" && |
| | | row.searchAddress.qu != "" |
| | | ) { |
| | | row.destination = |
| | | row.searchAddress.sheng + |
| | | row.searchAddress.shi + |
| | | row.searchAddress.qu; |
| | | row.travelprovincename = row.searchAddress.sheng; |
| | | row.travelprovince = this.$refs[ |
| | | "residenceSelect_" + row.index |
| | | ].getSheng(); |
| | | row.travelcityname = row.searchAddress.shi; |
| | | row.travelcity = this.$refs["residenceSelect_" + row.index].getShi(); |
| | | row.traveltownname = row.searchAddress.qu; |
| | | row.traveltown = this.$refs["residenceSelect_" + row.index].getQu(); |
| | | this.getStandard(row); |
| | | } |
| | | }, |
| | | |
| | | getCodeToText(codeArray) { |
| | | // åæ° codeStr, |
| | | // if (null === codeStr && null === codeArray) { |
| | | // return null; |
| | | // } else if (null === codeArray) { |
| | | // codeArray = codeStr.split(","); |
| | | // } |
| | | |
| | | let area = ""; |
| | | switch (codeArray.length) { |
| | | case 1: |
| | | area += CodeToText[codeArray[0]]; |
| | | break; |
| | | case 2: |
| | | area += CodeToText[codeArray[0]] + "/" + CodeToText[codeArray[1]]; |
| | | break; |
| | | case 3: |
| | | area += |
| | | CodeToText[codeArray[0]] + |
| | | "/" + |
| | | CodeToText[codeArray[1]] + |
| | | "/" + |
| | | CodeToText[codeArray[2]]; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return area; |
| | | }, |
| | | |
| | | //è·åæç®è
åºæ¬ä¿¡æ¯ï¼æç®ç¼å·ãæç®è
å§å |
| | | selectbaseinfo() { |
| | | let list = this.donatorList; |
| | | list.forEach(item => { |
| | | if (item.id == this.form.infoid) { |
| | | this.form.donorno = item.donorno; |
| | | this.form.donorname = item.name; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onpick(e) { |
| | | // console.log(e,this.value1) |
| | | }, |
| | | |
| | | gettable(e) { |
| | | const id = e.id; |
| | | getdownload(e.id).then(res => { |
| | | 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(); |
| | | }); |
| | | |
| | | // downloadconfirmationinfo(id).then((response) => { |
| | | // var fileUrl = response; |
| | | // //è·åå½åç½å |
| | | // 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(); |
| | | // }); |
| | | }, |
| | | |
| | | /** æ¥è¯¢æ¥éç³è¯·å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listReimbursement(this.queryParams).then(response => { |
| | | this.reimbursementList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.fileListto = []; |
| | | this.form = { |
| | | ceshi: {}, |
| | | bigstrmoney: null, |
| | | id: null, |
| | | delFlag: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | userno: null, |
| | | username: null, |
| | | idcardtype: null, |
| | | idcardno: null, |
| | | phone: null, |
| | | depositbank: null, |
| | | bankcardno: null, |
| | | branchbankname: null, |
| | | annexbankcard: null, |
| | | annexfiles: null, |
| | | amountrequested: null, |
| | | prepaidamount: null, |
| | | invoicecount: null, |
| | | attachcount: null, |
| | | managerno: null, |
| | | managername: null, |
| | | deptmentno: null, |
| | | deptmentname: null, |
| | | opochecker: null, |
| | | finvicepresident: null, |
| | | busvicepresident: null, |
| | | officedirector: null, |
| | | financedirector: null, |
| | | financechecher: null, |
| | | infoid: null, |
| | | donorno: null, |
| | | bigstrmoney: null, |
| | | remark: null, |
| | | reason: null, |
| | | recordstatus: "-1", |
| | | uploadflag: null, |
| | | uploadtime: null, |
| | | costtype: null, |
| | | costtypename: null |
| | | }; |
| | | this.rbDetails = []; |
| | | this.rbPayees = []; |
| | | this.resetForm("form"); |
| | | }, |
| | | // |
| | | handup(e) { |
| | | console.log("䏿¥", e); |
| | | }, |
| | | |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | // console.log('pop',this.value1) |
| | | if (this.value1.length > 0) { |
| | | this.queryParams.starttime = this.value1[0] + " 00:00:00"; |
| | | this.queryParams.endtime = this.value1[1] + " 00:00:00"; |
| | | console.log("å¼å§æ¶é´", this.queryParams.starttime); |
| | | } |
| | | // this.queryParams.pacitycode= this.$refs["residenceSelect"].getShi(); |
| | | // this.queryParams.paprovincecode= this.$refs["residenceSelect" ].getSheng(); |
| | | // this.queryParams.patowncode= this.$refs["residenceSelect" ].getQu(); |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | |
| | | /** éç½®æé®æä½ */ |
| | | 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 = "æ°å¢æ¥éç³è¯·"; |
| | | this.dialogType = "edit"; |
| | | this.fundflowList = []; |
| | | |
| | | this.form.userno = this.defaultperson.userName; |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.deptmentname = this.defaultperson.dept.deptName; |
| | | this.form.deptmentno = this.defaultperson.dept.deptId; |
| | | this.form.managername = this.defaultperson.dept.leader; |
| | | |
| | | this.addDetailRow(0); |
| | | this.addPayeeRow(0); |
| | | }, |
| | | gainee() { |
| | | let ids = this.$route.query.id; |
| | | let pos = this.$route.query.pos; |
| | | console.log(ids, pos); |
| | | if (pos == 2) { |
| | | this.handleDetail(ids); |
| | | } else if (pos == 1) { |
| | | this.handleUpdate(ids); |
| | | } |
| | | }, |
| | | |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(ids) { |
| | | this.$router.push({ |
| | | path: "/finance/travelexpenseslist/Modifydetails/", |
| | | query: { id: ids } |
| | | }); |
| | | this.dialogType = "edit"; |
| | | this.reset(); |
| | | // this.open = true; |
| | | this.title = "æ¥éç³è¯·ä¿®æ¹"; |
| | | |
| | | //è·åæ¥éä¸»ä¿¡æ¯ |
| | | const id = ids || this.ids; |
| | | getReimbursement(id).then(response => { |
| | | this.form = response.data; |
| | | this.fileListto = this.form.annexfiles |
| | | ? this.form.annexfiles |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | : []; |
| | | this.form.recordstatus = response.data.recordstatus + ""; |
| | | |
| | | let ids = response.data.id; |
| | | //è·åæ¥éæç»ä¿¡æ¯ |
| | | getReimbursementdetaillist(ids).then(res => { |
| | | this.rbDetails = res.data; |
| | | console.log(this.rbDetails); |
| | | if (this.rbDetails.length == 0) { |
| | | this.addDetailRow(0); |
| | | } |
| | | |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.sumRowFee(this.rbDetails[i]); |
| | | //è§£æåºå·®å°å |
| | | /* |
| | | this.rbDetails[i].index = i; |
| | | this.rbDetails[i].searchAddress = { |
| | | sheng: this.rbDetails[i].travelprovincename, |
| | | shi: this.rbDetails[i].travelcityname, |
| | | qu: this.rbDetails[i].traveltownname, |
| | | }; */ |
| | | } |
| | | |
| | | //宿¶å计éé¢ |
| | | //this.sumTotalFee(); |
| | | }); |
| | | |
| | | //è·åæ¥éææ¬¾ä¿¡æ¯ |
| | | this.queryParamsPayee.rbid = ids; |
| | | listReimbursementpayee(this.queryParamsPayee).then(res => { |
| | | this.rbPayees = res.rows; |
| | | if (this.rbPayees.length == 0) { |
| | | this.addPayeeRow(0); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** æ¥çæé®æä½ */ |
| | | handleDetail(ids) { |
| | | this.dialogType = "detail"; |
| | | this.title = "æ¥éç³è¯·è¯¦æ
"; |
| | | |
| | | this.reset(); |
| | | this.open = true; |
| | | const id = ids || this.ids; |
| | | |
| | | getReimbursement(id).then(response => { |
| | | this.form = response.data; |
| | | //éä»¶ |
| | | this.fileListto = this.form.annexfiles |
| | | ? this.form.annexfiles |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | : []; |
| | | |
| | | //å®¡æ ¸ç¶æ |
| | | this.form.recordstatus = response.data.recordstatus + ""; |
| | | |
| | | let ids = response.data.id; |
| | | let listFundflowparams = { |
| | | fundid: ids, |
| | | fundtype: 1 |
| | | }; |
| | | listFundflow(listFundflowparams).then(res => { |
| | | this.fundflowList = res.rows; |
| | | }); |
| | | |
| | | //æ¥éæç» |
| | | getReimbursementdetaillist(ids).then(res => { |
| | | this.rbDetails = res.data; |
| | | /* |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].index = i; |
| | | this.rbDetails[i].searchAddress = { |
| | | sheng: this.rbDetails[i].travelprovincename, |
| | | shi: this.rbDetails[i].travelcityname, |
| | | qu: this.rbDetails[i].traveltownname, |
| | | }; |
| | | } |
| | | */ |
| | | }); |
| | | |
| | | if (this.rbDetails.length > 0) this.sumTotalFee(); |
| | | |
| | | //仿¬¾ä¿¡æ¯ |
| | | this.queryParamsPayee.rbid = ids; |
| | | listReimbursementpayee(this.queryParamsPayee).then(res => { |
| | | this.rbPayees = res.rows; |
| | | if (this.rbPayees.length == 0) { |
| | | this.addPayeeRow(0); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** æäº¤ä¿åæé® */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | /** |
| | | let indexErrTime = this.rbDetails.findIndex((item) => { |
| | | if (item.endtime && item.starttime) { |
| | | let d = this.$moment(item.endtime).diff(this.$moment(item.starttime), "d"); |
| | | if (d < 0) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } else { |
| | | false; |
| | | } |
| | | }); |
| | | |
| | | if (indexErrTime > -1) { |
| | | this.$message({ |
| | | message: "第" + (indexErrTime + 1) + "è¡å°è¾¾æ¥ææ©äºåºåæ¥æ", |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | let emptyStartTimeindex = this.rbDetails.findIndex( |
| | | (item) => item.starttime == null || item.starttime == undefined || item.starttime == "" |
| | | ); |
| | | |
| | | if (emptyStartTimeindex > -1) { |
| | | this.$message({ |
| | | message: "第" + (emptyStartTimeindex + 1) + "è¡åºåæ¥æä¸ºç©º", |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | let emptyEndTimeindex = this.rbDetails.findIndex( |
| | | (item) => item.endtime == null || item.endtime == undefined || item.endtime == "" |
| | | ); |
| | | |
| | | if (emptyEndTimeindex > -1) { |
| | | this.$message({ |
| | | message: "第" + (emptyEndTimeindex + 1) + "è¡å°è¾¾æ¥æä¸ºç©º", |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | //è´¹ç¨å½å± |
| | | let belongArr = this.dict.type.sys_travelexpensebelong; |
| | | let costtypeindex = belongArr.findIndex( |
| | | (item) => this.form.costtype == item.value |
| | | ); |
| | | if (costtypeindex > -1) { |
| | | this.form.costtypename = belongArr[costtypeindex].label; |
| | | } |
| | | */ |
| | | |
| | | //éä»¶æä»¶å¤ç |
| | | let list = this.fileListto; |
| | | console.log(list); |
| | | |
| | | //æ ¡éªè¯·æ¬¾éé¢å计æ¯å¦çäºæ¥éåéé¢ |
| | | if ( |
| | | this.form.amountrequested != |
| | | this.rbPayees.reduce( |
| | | (amount, item) => amount + Number(item.amount), |
| | | 0.0 |
| | | ) |
| | | ) { |
| | | this.$message({ |
| | | message: |
| | | "æ¥é请款表ä¸å计éé¢ä¸çäºæ¥éåçæ¥ééé¢ï¼è¯·æ´æ£ååä¿åï¼", |
| | | type: "warning" |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | const rbDetails = [...this.rbDetails]; |
| | | const rbPayees = [...this.rbPayees]; |
| | | console.log(rbDetails); |
| | | console.log(rbPayees); |
| | | if (this.form.id != null) { |
| | | console.log(this.form); |
| | | updateReimbursement(this.form); |
| | | // .then(res => { |
| | | //ä¿åæç» |
| | | for (let i = 0; i < rbDetails.length; i++) { |
| | | if (rbDetails[i].rbid != null) { |
| | | updateReimbursementdetail(rbDetails[i]); |
| | | } else { |
| | | //rbidå
³è主表Id |
| | | rbDetails[i].rbid = this.form.id; |
| | | addReimbursementdetail(rbDetails[i]); |
| | | } |
| | | } |
| | | |
| | | //ä¿åè´¦æ· |
| | | for (let i = 0; i < rbPayees.length; i++) { |
| | | if (rbPayees[i].rbid != null) { |
| | | updateReimbursementpayee(rbPayees[i]); |
| | | } else { |
| | | //rbidå
³è主表Id |
| | | rbPayees[i].rbid = this.form.id; |
| | | addReimbursementpayee(rbPayees[i]); |
| | | } |
| | | } |
| | | |
| | | this.$modal.msgSuccess("ä¿®æ¹æ¥éåä¿åæå!"); |
| | | this.open = false; |
| | | this.getList(); |
| | | // }) |
| | | // .catch(err => { |
| | | // this.$modal.msgError("ä¿®æ¹æ¥éåä¿å失败ï¼"); |
| | | // }); |
| | | } else { |
| | | this.form.recordstatus = -1; |
| | | addReimbursement(this.form) |
| | | .then(response => { |
| | | //ä¿åæç» |
| | | for (let i = 0; i < rbDetails.length; i++) { |
| | | //rbidå
³è主表Id |
| | | rbDetails[i].rbid = response.data; |
| | | addReimbursementdetail(rbDetails[i]); |
| | | } |
| | | |
| | | //ä¿åè´¦å· |
| | | for (let i = 0; i < rbPayees.length; i++) { |
| | | //rbidå
³è主表Id |
| | | rbPayees[i].rbid = response.data; |
| | | addReimbursementpayee(rbPayees[i]); |
| | | } |
| | | |
| | | this.$modal.msgSuccess("æ°å¢æ¥éåä¿åæå!"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }) |
| | | .catch(err => { |
| | | this.$modal.msgError("æ°å¢æ¥éåä¿å失败ï¼"); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal |
| | | .confirm("æ¯å¦ç¡®è®¤å é¤è¯¥æ¡è®°å½ï¼") |
| | | .then(function() { |
| | | // å é¤detailså
çæ°æ® |
| | | return delReimbursement(ids); |
| | | }) |
| | | .then(() => { |
| | | delReimbursementdetail(ids); |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | /** å¯¼åºæé®æä½ */ |
| | | 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(() => {}); |
| | | }, |
| | | |
| | | //æ°å¢ä¸è¡ |
| | | addDetailRow(rowIndex) { |
| | | let rowData = { |
| | | //index: this.rbDetails.length, |
| | | searchAddress: { |
| | | sheng: "", |
| | | shi: "", |
| | | qu: "" |
| | | }, |
| | | id: null, |
| | | rbid: null, |
| | | starttime: null, |
| | | departure: null, |
| | | endtime: null, |
| | | destination: null, |
| | | days: null, |
| | | trafficexpense: 0, |
| | | traffictype: null, |
| | | traffictype2: null, |
| | | cityfee: 0, |
| | | hotelexpense: 0, |
| | | invoicecount: null, |
| | | attachcount: null, |
| | | otherexpense: 0, |
| | | foodexpenses: 0, |
| | | foodallowance: 0, |
| | | otherfeeamount: 0, |
| | | annexfiles: null, |
| | | remark: null, |
| | | delFlag: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | uploadFlag: null, |
| | | uploadTime: null, |
| | | total: 0, |
| | | orderno: null, |
| | | personname2: null, |
| | | personname: null, |
| | | destination: null |
| | | }; |
| | | if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { |
| | | this.rbDetails.push(rowData); |
| | | } else { |
| | | this.rbDetails.splice(rowIndex + 1, 0, rowData); |
| | | } |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].orderno = i + 1; |
| | | } |
| | | }, |
| | | |
| | | addPayeeRow(rowIndex) { |
| | | let rowData = { |
| | | id: null, |
| | | personType: null, |
| | | personname: null, |
| | | bankname: null, |
| | | bankcardno: null, |
| | | paiddate: null, |
| | | remark: null, |
| | | orderno: null, |
| | | personname: null, |
| | | amount: null |
| | | }; |
| | | if (rowIndex == undefined || rowIndex == null || rowIndex <= 0) { |
| | | this.rbPayees.push(rowData); |
| | | } else { |
| | | this.rbPayees.splice(rowIndex + 1, 0, rowData); |
| | | } |
| | | for (let i = 0; i < this.rbPayees.length; i++) { |
| | | this.rbPayees[i].orderno = i + 1; |
| | | } |
| | | }, |
| | | |
| | | deleteDetailRow(index, rows, row) { |
| | | this.$confirm("æ¯å¦ç¡®è®¤å é¤?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "success" |
| | | }) |
| | | .then(() => { |
| | | console.log(row); |
| | | if (row.id !== null) { |
| | | delReimbursementdetail(row.id).then(res => { |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | rows.splice(index, 1); |
| | | this.recountOrderNo(); |
| | | this.sumTotalFee(); |
| | | }); |
| | | } else { |
| | | rows.splice(index, 1); |
| | | this.sumTotalFee(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | this.recountOrderNo(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | //å ç¹åæ¶çæç¤º |
| | | }); |
| | | }, |
| | | |
| | | deletePayeeRow(index, rows, row) { |
| | | this.$confirm("æ¯å¦ç¡®è®¤å é¤?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "success" |
| | | }) |
| | | .then(() => { |
| | | console.log(row); |
| | | if (row.id !== null) { |
| | | delReimbursementdetail(row.id).then(res => { |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | rows.splice(index, 1); |
| | | this.recountOrderNo2(); |
| | | this.sumTotalFee(); |
| | | }); |
| | | } else { |
| | | rows.splice(index, 1); |
| | | this.sumTotalFee(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | this.recountOrderNo2(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | //å ç¹åæ¶çæç¤º |
| | | }); |
| | | }, |
| | | //éæ°è®¡ç®æåº |
| | | recountOrderNo() { |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].orderno = i + 1; |
| | | } |
| | | }, |
| | | //éæ°è®¡ç®æåº |
| | | recountOrderNo2() { |
| | | for (let i = 0; i < this.rbPayees.length; i++) { |
| | | this.rbPayees[i].orderno = i + 1; |
| | | } |
| | | }, |
| | | |
| | | //䏿¥ |
| | | handleup(row) { |
| | | this.$confirm("æ¯å¦ç¡®è®¤å°ç»è®°è®°å½ä¸æ¥ï¼", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | //è°ç¨å·®æ
è´¹ä¸æ¥æ¥å£ |
| | | let tempParam = { |
| | | fundid: row.id |
| | | }; |
| | | fundSubmit(tempParam).then(response => { |
| | | if (response.code == 200) { |
| | | this.getList(); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "䏿¥æå" |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "䏿¥å¤±è´¥" |
| | | }); |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已忶ç³è¯·" |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | //计ç®ä¸è¡å计 |
| | | //计ç®å½åè¡æ¥éå
容费ç¨å计 |
| | | sumRowFee(row) { |
| | | let totalFee = 0; |
| | | if (!isNaN(parseFloat(row.trafficexpense))) { |
| | | totalFee += parseFloat(row.trafficexpense); |
| | | } |
| | | if (!isNaN(parseFloat(row.cityfee))) { |
| | | totalFee += parseFloat(row.cityfee); |
| | | } |
| | | if (!isNaN(parseFloat(row.hotelexpense))) { |
| | | totalFee += parseFloat(row.hotelexpense); |
| | | } |
| | | if (!isNaN(parseFloat(row.otherexpense))) { |
| | | totalFee += parseFloat(row.otherexpense); |
| | | } |
| | | if (!isNaN(parseFloat(row.foodexpenses))) { |
| | | totalFee += parseFloat(row.foodexpenses); |
| | | } |
| | | if (!isNaN(parseFloat(row.foodallowance))) { |
| | | totalFee += parseFloat(row.foodallowance); |
| | | } |
| | | if (!isNaN(parseFloat(row.otherfeeamount))) { |
| | | totalFee += parseFloat(row.otherfeeamount); |
| | | } |
| | | row.total = totalFee; |
| | | |
| | | /* |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].trafficexpense))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].trafficexpense); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].cityfee))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].cityfee); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].hotelexpense))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].hotelexpense); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].otherexpense))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].otherexpense); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].foodexpenses))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].foodexpenses); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].foodallowance))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].foodallowance); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[rowIndex].otherfeeamount))) { |
| | | totalFee += parseFloat(this.rbDetails[rowIndex].otherfeeamount); |
| | | } |
| | | this.rbDetails[rowIndex].total = parseFloat(totalFee).toFixed(2); |
| | | this.$set(this.rbDetails, rowIndex, this.rbDetails[rowIndex]); |
| | | */ |
| | | //éæ°è®¡ç®æ´ä¸ªæ¥éåçå计 |
| | | this.sumTotalFee(); |
| | | }, |
| | | |
| | | //计ç®è´¹ç¨å计 |
| | | sumTotalFee() { |
| | | let allSum = 0; |
| | | |
| | | //æç®è
å®¶å±è´¹ç¨ |
| | | if (!isNaN(parseFloat(this.form.donoramount))) { |
| | | allSum += parseFloat(this.form.donoramount); |
| | | } |
| | | |
| | | //æ¥éæç»è´¹ç¨ |
| | | try { |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | /* |
| | | let totalFee = 0; |
| | | //计ç®å½åæ¥éå
容费ç¨å计 |
| | | if (!isNaN(parseFloat(this.rbDetails[i].total))) { |
| | | totalFee += parseFloat(this.rbDetails[i].total); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].cityfee))) { |
| | | totalFee += parseFloat(this.rbDetails[i].cityfee); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].hotelexpense))) { |
| | | totalFee += parseFloat(this.rbDetails[i].hotelexpense); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].otherexpense))) { |
| | | totalFee += parseFloat(this.rbDetails[i].otherexpense); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].foodexpenses))) { |
| | | totalFee += parseFloat(this.rbDetails[i].foodexpenses); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].foodallowance))) { |
| | | totalFee += parseFloat(this.rbDetails[i].foodallowance); |
| | | } |
| | | if (!isNaN(parseFloat(this.rbDetails[i].otherfeeamount))) { |
| | | totalFee += parseFloat(this.rbDetails[i].otherfeeamount); |
| | | } |
| | | this.rbDetails[i].total = parseFloat(totalFee).toFixed(2); |
| | | this.$set(this.rbDetails, i, this.rbDetails[i]); |
| | | */ |
| | | |
| | | if (!isNaN(parseFloat(this.rbDetails[i].total))) { |
| | | allSum += parseFloat(this.rbDetails[i].total); |
| | | } |
| | | } |
| | | |
| | | this.form.amountrequested = allSum.toFixed(2); |
| | | this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); |
| | | } catch {} |
| | | }, |
| | | |
| | | //é颿°åè½¬æ¢æå¤§å |
| | | convertCurrency(money) { |
| | | //æ±åçæ°å |
| | | var cnNums = new Array( |
| | | "é¶", |
| | | "壹", |
| | | "è´°", |
| | | "å", |
| | | "è", |
| | | "ä¼", |
| | | "é", |
| | | "æ", |
| | | "æ", |
| | | "ç" |
| | | ); |
| | | //åºæ¬åä½ |
| | | var cnIntRadice = new Array("", "æ¾", "ä½°", "ä»"); |
| | | //å¯¹åºæ´æ°é¨åæ©å±åä½ |
| | | var cnIntUnits = new Array("", "ä¸", "亿", "å
"); |
| | | //对åºå°æ°é¨ååä½ |
| | | var cnDecUnits = new Array("è§", "å", "毫", "å"); |
| | | //æ´æ°é颿¶åé¢è·çå符 |
| | | var cnInteger = "æ´"; |
| | | //æ´åå®ä»¥åçåä½ |
| | | var cnIntLast = "å
"; |
| | | //æå¤§å¤ççæ°å |
| | | var maxNum = 999999999999999.9999; |
| | | //é颿´æ°é¨å |
| | | var integerNum; |
| | | //éé¢å°æ°é¨å |
| | | var decimalNum; |
| | | //è¾åºç䏿éé¢å符串 |
| | | var chineseStr = ""; |
| | | //å离éé¢åç¨çæ°ç»ï¼é¢å®ä¹ |
| | | var parts; |
| | | if (money == "") { |
| | | return ""; |
| | | } |
| | | money = parseFloat(money); |
| | | if (money >= maxNum) { |
| | | //è¶
åºæå¤§å¤çæ°å |
| | | return ""; |
| | | } |
| | | if (money == 0) { |
| | | chineseStr = cnNums[0] + cnIntLast + cnInteger; |
| | | return chineseStr; |
| | | } |
| | | //转æ¢ä¸ºå符串 |
| | | money = money.toString(); |
| | | if (money.indexOf(".") == -1) { |
| | | integerNum = money; |
| | | decimalNum = ""; |
| | | } else { |
| | | parts = money.split("."); |
| | | integerNum = parts[0]; |
| | | decimalNum = parts[1].substr(0, 4); |
| | | } |
| | | //è·åæ´åé¨åè½¬æ¢ |
| | | if (parseInt(integerNum, 10) > 0) { |
| | | var zeroCount = 0; |
| | | var IntLen = integerNum.length; |
| | | for (var i = 0; i < IntLen; i++) { |
| | | var n = integerNum.substr(i, 1); |
| | | var p = IntLen - i - 1; |
| | | var q = p / 4; |
| | | var m = p % 4; |
| | | if (n == "0") { |
| | | zeroCount++; |
| | | } else { |
| | | if (zeroCount > 0) { |
| | | chineseStr += cnNums[0]; |
| | | } |
| | | //å½é¶ |
| | | zeroCount = 0; |
| | | chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; |
| | | } |
| | | if (m == 0 && zeroCount < 4) { |
| | | chineseStr += cnIntUnits[q]; |
| | | } |
| | | } |
| | | chineseStr += cnIntLast; |
| | | } |
| | | //å°æ°é¨å |
| | | if (decimalNum != "") { |
| | | var decLen = decimalNum.length; |
| | | for (var i = 0; i < decLen; i++) { |
| | | var n = decimalNum.substr(i, 1); |
| | | if (n != "0") { |
| | | chineseStr += cnNums[Number(n)] + cnDecUnits[i]; |
| | | } |
| | | } |
| | | } |
| | | if (chineseStr == "") { |
| | | chineseStr += cnNums[0] + cnIntLast + cnInteger; |
| | | } else if (decimalNum == "") { |
| | | chineseStr += cnInteger; |
| | | } |
| | | return chineseStr; |
| | | } |
| | | } |
| | | }; |
| | | </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); |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | </style> |