src/views/login.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/applyDetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseapply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseapply/travelexpensedetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/login.vue
@@ -1,25 +1,43 @@ <template> <div class="login"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" > <h3 class="title">浙江省OPO数字化管理平台</h3> <el-form-item prop="username"> <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号"> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号" > <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> </el-input> </el-form-item> <el-form-item prop="password"> <el-input v-model="loginForm.password" type="password" auto-complete="off" auto-complete="off" @focus="tip" placeholder="密码" @keyup.enter.native="handleLogin" > <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> </el-input> </el-form-item> <br> <br /> <el-form-item prop="code" v-if="captchaOnOff"> <el-input v-model="loginForm.code" @@ -28,13 +46,21 @@ style="width: 63%" @keyup.enter.native="handleLogin" > <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> </el-input> <div class="login-code"> <img :src="codeUrl" @click="getCode" class="login-code-img"/> <img :src="codeUrl" @click="getCode" class="login-code-img" /> </div> </el-form-item> <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;" >记住密码</el-checkbox > <el-form-item style="width:100%;"> <el-button :loading="loading" @@ -47,7 +73,9 @@ <span v-else>登 录 中...</span> </el-button> <div style="float: right;" v-if="register"> <router-link class="link-type" :to="'/register'">立即注册</router-link> <router-link class="link-type" :to="'/register'" >立即注册</router-link > </div> </el-form-item> </el-form> @@ -61,7 +89,7 @@ <script> import { getCodeImg } from "@/api/login"; import Cookies from "js-cookie"; import { encrypt, decrypt } from '@/utils/jsencrypt' import { encrypt, decrypt } from "@/utils/jsencrypt"; export default { name: "Login", @@ -81,8 +109,13 @@ { required: true, trigger: "blur", message: "请输入您的账号" } ], password: [ { required: true, trigger: "blur", message: "密码必须包含大小写字母、数字、特殊字符中的至少三种且长度大于等于8位" } ], { required: true, trigger: "blur", message: "密码必须包含大小写字母、数字、特殊字符中的至少三种且长度大于等于8位" } ] // code: [{ required: true, trigger: "change", message: "请输入验证码" }] }, loading: false, @@ -106,12 +139,13 @@ this.getCookie(); }, methods: { tip(){ tip() { //console.log('awdawd',聚焦); }, getCode() { getCodeImg().then(res => { this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff; this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff; if (this.captchaOnOff) { this.codeUrl = "data:image/gif;base64," + res.img; this.loginForm.uuid = res.uuid; @@ -121,10 +155,11 @@ getCookie() { const username = Cookies.get("username"); const password = Cookies.get("password"); const rememberMe = Cookies.get('rememberMe') const rememberMe = Cookies.get("rememberMe"); this.loginForm = { username: username === undefined ? this.loginForm.username : username, password: password === undefined ? this.loginForm.password : decrypt(password), password: password === undefined ? this.loginForm.password : decrypt(password), rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) }; }, @@ -134,21 +169,29 @@ this.loading = true; if (this.loginForm.rememberMe) { Cookies.set("username", this.loginForm.username, { expires: 30 }); Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); Cookies.set("rememberMe", this.loginForm.rememberMe, { expires: 30 }); } else { Cookies.remove("username"); Cookies.remove("password"); Cookies.remove('rememberMe'); Cookies.remove("rememberMe"); } this.$store.dispatch("Login", this.loginForm).then(() => { this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); }).catch(() => { this.loading = false; if (this.captchaOnOff) { this.getCode(); } }); this.$store .dispatch("Login", this.loginForm) .then(() => { this.$router.push({ path: this.redirect || "/" }).catch(() => {}); }) .catch(() => { this.loading = false; this.$message.error("登陆失败请重试。"); if (this.captchaOnOff) { this.getCode(); } }); } }); } src/views/project/fund/applyDetail/index.vue
@@ -7,28 +7,53 @@ <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 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 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-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-input v-model="form.managername" placeholder="请输入组长" clearable /> </el-form-item> </el-col> </el-row> @@ -50,10 +75,13 @@ <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> </el-col ><el-col :span="5"> <el-form-item label="银行账号" prop="bankcardno"> <el-input v-model="form.bankcardno" placeholder="请输入银行账号" /> <el-input v-model="form.bankcardno" placeholder="请输入银行账号" /> </el-form-item> </el-col> <el-col :span="5"> @@ -72,9 +100,14 @@ --> <el-col :span="5"> <el-form-item label="申请金额" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> </el-form-item> </el-col> <!-- </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" /> @@ -92,7 +125,11 @@ </el-col> <el-col :span="5"> <el-form-item label="捐献者" prop="name"> <el-input :disabled="true" v-model="form.donorname" placeholder="请输入捐献者姓名" /> <el-input :disabled="true" v-model="form.donorname" placeholder="请输入捐献者姓名" /> </el-form-item> </el-col> <!-- @@ -108,14 +145,28 @@ <el-row style="margin-top: 5px; margin-bottom: 5px" /> <el-row style="margin-bottom: 10px" v-if="businessType == '1'"> <el-col :span="4"> <el-button @click.native.prevent="importFeeItems" type="primary" size="small"> <el-button @click.native.prevent="importFeeItems" type="primary" size="small" > 导入服务项目 </el-button> </el-col> </el-row> <el-row> <el-table :data="rbDetails" v-loading="loading" border highlight-current-row> <el-table-column prop="orderno" align="center" label="序号" width="65"> <el-table :data="rbDetails" v-loading="loading" border highlight-current-row > <el-table-column prop="orderno" align="center" label="序号" width="65" > <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> @@ -124,50 +175,125 @@ <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip="" v-if="form.applytype == '1'"> </el-table-column>--> <el-table-column prop="applytype" align="center" label="服务类型" width="200"> <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.index" :label="dict.label" :value="dict.value"></el-option> <el-select v-model="scope.row.applytype" placeholder="服务类型" @change="verifyFeeItemType(scope.row)" > <el-option v-for="dict in rowfeeItemTypes" :key="dict.index" :label="dict.label" :value="dict.value" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemid" align="center" label="服务项目" width="260"> <el-table-column prop="itemid" align="center" label="服务项目" width="260" > <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="服务项目" filterable @change="verifyFeeItem(scope.row)" :filter-method="val => searchItemType(val, scope)"> <el-option v-for="dict in scope.row.itemlist" :key="dict.index" :label="dict.itemName" :value="dict.id"></el-option> <el-select v-model="scope.row.itemid" placeholder="服务项目" filterable @change="verifyFeeItem(scope.row)" :filter-method="val => searchItemType(val, scope)" > <el-option v-for="dict in scope.row.itemlist" :key="dict.index" :label="dict.itemName" :value="dict.id" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="servicesscope" align="center" label="服务说明" v-if="form.applytype == '1'" width="180"> <el-table-column prop="servicesscope" align="center" label="服务说明" v-if="form.applytype == '1'" width="180" > <template slot-scope="scope"> <el-select v-model="scope.row.servicesscope" placeholder="服务说明" clearable allow-create filterable @change="verifyFeeRemark(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope"></el-option> <el-select v-model="scope.row.servicesscope" placeholder="服务说明" clearable allow-create filterable @change="verifyFeeRemark(scope.row)" > <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="price" align="center" label="单价" width="120" v-if="businessType == 4"> <el-table-column prop="price" align="center" label="单价" width="120" v-if="businessType == 4" > <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="单价" @blur="val => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.price" placeholder="单价" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="businessType == 4"> <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="businessType == 4" > <template slot-scope="scope"> <el-input v-model="scope.row.quantity" placeholder="数量" @blur="val => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.quantity" placeholder="数量" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column v-if="businessType == 2 || businessType == 3 || businessType == 4 || ismanager == true" prop="amount" align="center" :label=amountLabel width="120"> <el-table-column v-if=" businessType == 2 || businessType == 3 || businessType == 4 || ismanager == true " prop="amount" align="center" :label="amountLabel" width="120" > <template slot-scope="scope"> <!-- <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create @@ -179,18 +305,37 @@ <el-input v-model="scope.row.amount" placeholder="金额" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="(this.ismanager == true) & (form.applytype == '1' || form.applytype == '2') "> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if=" (this.ismanager == true) & (form.applytype == '1' || form.applytype == '2') " > <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="姓名" width="120" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="beneficiaryname" align="center" label="姓名" width="120" v-if="form.applytype == '1' || form.applytype == '2'" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'expert')">{{ scope.row.beneficiaryname }}</el-button> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'expert')" >{{ scope.row.beneficiaryname }}</el-button > <!-- <el-select filterable allow-create @@ -210,10 +355,19 @@ </el-select> --> </template> </el-table-column> <el-table-column prop="unitno" align="center" label="单位名称" width="250"> <el-table-column prop="unitno" align="center" label="单位名称" width="250" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')" >{{ scope.row.unitname }}</el-button > <!-- <el-select v-model="scope.row.unitno" placeholder="单位" @@ -230,26 +384,54 @@ </el-select> --> </template> </el-table-column> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype == '1' || form.applytype == '2'" > <template slot-scope="scope"> <el-input v-model="scope.row.title" placeholder="职称" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype == '1' || form.applytype == '2'" > <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份证号" /> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '4'"> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '4'" > <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210" v-if="form.applytype != '4'"> <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210" v-if="form.applytype != '4'" > <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="银行帐号" /> <el-input v-model="scope.row.bankcardno" placeholder="银行帐号" /> </template> </el-table-column> <el-table-column prop="remark" align="center" label="备注"> @@ -257,18 +439,39 @@ <el-input v-model="scope.row.remark" placeholder="备注" /> </template> </el-table-column> <el-table-column fixed="right" align="center" label="操作" width="180"> <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'">新增</el-button> <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, rbDetails) " type="text" size="small" v-if="operationType == 'add' || operationType == 'update'"> <el-button type="text" size="mini" @click="addRow(scope.$index)" v-if="operationType == 'add' || operationType == 'update'" >新增</el-button > <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, rbDetails) " type="text" size="small" v-if="operationType == 'add' || operationType == 'update'" > 删除 </el-button> <el-button @click.native.prevent=" Filepopup(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="businessType == 3 || businessType == 4">票据</el-button> <el-button @click.native.prevent=" Filepopup(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="businessType == 3 || businessType == 4" >票据</el-button > </template> </el-table-column> </el-table> @@ -316,31 +519,77 @@ --> <el-row> <el-col :span="12"> <el-form-item label="费用申请附件" align="left" prop="annexbankcard" v-if="businessType == 0"> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="operationType == 'detail'" size="small" type="primary">上传票据</el-button> <el-form-item label="费用申请附件" align="left" prop="annexbankcard" v-if="businessType == 0" > <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf" > <el-button :disabled="operationType == 'detail'" size="small" type="primary" >上传票据</el-button > </el-upload> </el-form-item> </el-col> </el-row> <el-row v-if="operationType == 'detail' || operationType == 'check'"> <el-table :data="fundflowList" border> <el-table-column label="审核日期" align="center" width="160" prop="createTime" /> <el-table-column label="审核人" align="center" width="120" prop="checkusername" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion"> <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-column label="审核备注" align="center" prop="flowcontent" /> </el-table> </el-row> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType == 'check'"> <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"> @@ -359,15 +608,30 @@ </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'">提交保存</el-button> <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'">提交审核</el-button> <el-button type="primary" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'" >提交保存</el-button > <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'" >提交审核</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-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-col :span="24" v-if="selectionType == 'expert'"> @@ -378,29 +642,77 @@ </el-radio-group> </el-form-item> </el-col> <el-col :span="24" v-if="selectionType == 'expert' && expertfrom == '1'"> <el-form-item label="专家姓名" prop="beneficiaryname" label-width="80px"> <el-select filterable allow-create ref="beneficiaryname" default-first-option v-model="funddetailForm.beneficiaryname" placeholder="请选择" style="width: 100%"> <el-option v-for="item in expertlist" :key="item.expertNo" :label="item.exportName" :value="item.exportName"> <el-col :span="24" v-if="selectionType == 'expert' && expertfrom == '1'" > <el-form-item label="专家姓名" prop="beneficiaryname" label-width="80px" > <el-select filterable allow-create ref="beneficiaryname" default-first-option v-model="funddetailForm.beneficiaryname" placeholder="请选择" style="width: 100%" > <el-option v-for="item in expertlist" :key="item.expertNo" :label="item.exportName" :value="item.exportName" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="selectionType == 'unit'"> <el-form-item label="单位名称" prop="unitno" label-width="120px" v-if="businessType == 1 || businessType == 2"> <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> <el-form-item label="单位名称" prop="unitno" label-width="120px" v-if="businessType == 1 || businessType == 2" > <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%" > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> </el-form-item> <el-form-item label="发票单位名称" prop="unitno" label-width="120px" v-if="businessType == 3 || businessType == 4"> <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> <el-option v-for="(item, index) in feeUnitList" :key="index" :label="item.reportName" :value="item.reportNo"></el-option> <el-form-item label="发票单位名称" prop="unitno" label-width="120px" v-if="businessType == 3 || businessType == 4" > <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%" > <el-option v-for="(item, index) in feeUnitList" :key="index" :label="item.reportName" :value="item.reportNo" ></el-option> </el-select> </el-form-item> </el-col> @@ -408,22 +720,43 @@ <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="专家姓名" prop="expertname" label-width="80px"> <el-input v-model="funddetailForm.expertname" placeholder="必填项" /> <el-input v-model="funddetailForm.expertname" placeholder="必填项" /> </el-form-item> </el-col> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="职 称" prop="experttitle" label-width="80px"> <el-select v-model="funddetailForm.experttitle" placeholder="必填项"> <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> <el-form-item label="职 称" prop="experttitle" label-width="80px" > <el-select v-model="funddetailForm.experttitle" placeholder="必填项" > <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="身份证号" prop="expertidcardno" label-width="80px"> <el-input v-model="funddetailForm.expertidcardno" placeholder="必填项" /> <el-form-item label="身份证号" prop="expertidcardno" label-width="80px" > <el-input v-model="funddetailForm.expertidcardno" placeholder="必填项" /> </el-form-item> </el-col> </el-row> @@ -441,41 +774,91 @@ --> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="单位名称" prop="expertunitno" label-width="80px"> <el-select v-model="funddetailForm.expertunitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> </el-select> </el-form-item></el-col> <el-form-item label="单位名称" prop="expertunitno" label-width="80px" > <el-select v-model="funddetailForm.expertunitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%" > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> </el-form-item ></el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="开户银行" prop="expertdepositbank" label-width="80px"> <el-input v-model="funddetailForm.expertdepositbank" placeholder="必填项" /> <el-form-item label="开户银行" prop="expertdepositbank" label-width="80px" > <el-input v-model="funddetailForm.expertdepositbank" placeholder="必填项" /> </el-form-item> </el-col> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="银行卡号" prop="expertbankcardno" label-width="80px"> <el-input v-model="funddetailForm.expertbankcardno" placeholder="必填项" /> <el-form-item label="银行卡号" prop="expertbankcardno" label-width="80px" > <el-input v-model="funddetailForm.expertbankcardno" placeholder="必填项" /> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showSelectionDialog = false">取 消</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">确 定</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="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="operationType == 'detail'" size="small" type="primary">上传票据</el-button> <el-upload 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="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf" > <el-button :disabled="operationType == 'detail'" size="small" type="primary" >上传票据</el-button > </el-upload> </div> <!-- <div @@ -489,7 +872,13 @@ </div> <div v-if="this.previewpdf" class="pdfimgmin"> <img :src="pdfimg" /> <!-- <img :src="pdfimg" /> --> <el-image style="width: 100px; height: 100px" :src="pdfimg" :preview-src-list="pdfimgsrcList" > </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> @@ -650,7 +1039,6 @@ totalAfterTaxAmount: 0.0, totalAmount: 0.0, //费用类型数组 feeItemTypes: [], @@ -727,7 +1115,7 @@ checkObj: { flowlevelone: null, flowconclusion: null, fundid: null, fundid: null }, // 查询参数 @@ -783,6 +1171,7 @@ //票据文件 pdftitle: "", pdfimg: "", pdfimgsrcList: [], pdfVisible: false, previewpdf: false, hintitle: "选中左侧已上传文件预览查看", @@ -856,22 +1245,19 @@ // if (!this.businessType && !this.operationType) { if (this.businessType == "1") { this.businessName = "专家劳务费申请单" this.amountLabel = "税前金额" this.businessName = "专家劳务费申请单"; this.amountLabel = "税前金额"; this.getUnitList(); } else if (this.businessType == "2") { } else if (this.businessType == "2") { this.businessName = "伦理专家劳务费申请单"; this.amountLabel = "税前金额" this.amountLabel = "税前金额"; this.getUnitList(); } else if (this.businessType == "3") { } else if (this.businessType == "3") { this.businessName = "医学成本报销单"; this.amountLabel = "金额" } else if (this.businessType == "4") { this.amountLabel = "金额"; } else if (this.businessType == "4") { this.businessName = "办公费用报销单"; this.amountLabel = "金额" this.amountLabel = "金额"; // this.getBaseInfoList(); } @@ -883,16 +1269,13 @@ console.log("this.curCase", this.curCase); } this.handleAdd(); } else if (this.operationType == "update") { } else if (this.operationType == "update") { this.title = this.businessName + "修改"; this.handleUpdate(); } else if (this.operationType == "detail") { } else if (this.operationType == "detail") { this.title = this.businessName + "查看"; this.handleDetail(); } else if (this.operationType == "check") { } else if (this.operationType == "check") { this.title = this.businessName + "审核"; this.handleCheck(); } @@ -1004,7 +1387,7 @@ } }); //业务流程 //业务流程 let listFundflowparams = { fundid: this.curId, fundtype: 2 @@ -1046,7 +1429,7 @@ } }); //业务流程 //业务流程 let listFundflowparams = { fundid: this.curId, fundtype: 2 @@ -1055,14 +1438,13 @@ this.fundflowList = res.rows; }); }); }, /** 删除按钮操作 */ handleDelete() { this.$modal .confirm("是否确认删除该记录?") .then(function () { .then(function() { return delFund(this.curId); }) .then(() => { @@ -1077,7 +1459,7 @@ this.getfundList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 上报按钮操作 */ @@ -1130,8 +1512,8 @@ if (tempDetail.itemid == null) { this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的服务项目未选择,请先选择服务项目后再提交保存!" (k + 1).toString() + "行的服务项目未选择,请先选择服务项目后再提交保存!" ); return; } @@ -1140,17 +1522,20 @@ if (tempDetail.servicesscope == null) { this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的费用说明未选择,请选择费用说明后再提交保存!" (k + 1).toString() + "行的费用说明未选择,请选择费用说明后再提交保存!" ); return; } if (tempDetail.beneficiaryno == null || tempDetail.beneficiaryno == "点击选择") { if ( tempDetail.beneficiaryno == null || tempDetail.beneficiaryno == "点击选择" ) { this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的服务人员姓名为选择,请选择人员后再提交保存!" (k + 1).toString() + "行的服务人员姓名为选择,请选择人员后再提交保存!" ); return; } @@ -1329,13 +1714,13 @@ // fundid: this.checkObj.fundid, fundid: this.curId, flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion, flowcontent: this.checkObj.flowconclusion }; checkfund(checkFundObj).then((res) => { checkfund(checkFundObj).then(res => { //关闭窗口 this.reset(); this.$modal.msgSuccess("审核完成!"); this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); }); }, @@ -1343,7 +1728,7 @@ // 取消按钮 cancel() { // this.reset(); this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); }, @@ -1352,7 +1737,11 @@ 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") { if ( this.userprofile.userName == "admin" || this.userprofile.userName == "001" || this.userprofile.userName == "047" ) { this.ismanager = true; } else { this.ismanager = false; @@ -1413,7 +1802,7 @@ getUserAccount() { this.personlist.map(res => { if (res.username == this.form.username) { this.form.bankname = res.depositbank;//res.branchbankname、res.depositbank; this.form.bankname = res.depositbank; //res.branchbankname、res.depositbank; this.form.bankcardno = res.bankcardno; this.form.phone = res.telephone; } @@ -1792,7 +2181,7 @@ }, //计算个税 calculateTax() { }, calculateTax() {}, //计算总金额 sumTotalFee(row) { @@ -1887,7 +2276,7 @@ }, //文件上传 handleUploadError() { }, handleUploadError() {}, /** 下载文件按钮操作 */ downFile(item) { @@ -1962,6 +2351,8 @@ this.previewpdf = true; if (item.url) { this.pdfimg = item.url; this.pdfimgsrcList = []; this.pdfimgsrcList.push(item.url); } else { this.pdfimg = item.response.url; } @@ -2020,7 +2411,8 @@ } else { //保存新增专家 this.expertform.id = null; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.usertype = "expert"; this.expertform.username = this.funddetailForm.expertname; this.expertform.idcardno = this.funddetailForm.expertidcardno; @@ -2117,7 +2509,7 @@ this.rbDetails[tempIndex] = singleDetail; this.showSelectionDialog = false; }, } }, //生命周期 - 创建完成(可以访问当前this实例) @@ -2134,13 +2526,13 @@ // this.getFeeUnitList(); }, beforeCreate() { }, //生命周期 - 创建之前 beforeMount() { }, //生命周期 - 挂载之前 beforeUpdate() { }, //生命周期 - 更新之前 updated() { }, //生命周期 - 更新之后 beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 beforeCreate() {}, //生命周期 - 创建之前 beforeMount() {}, //生命周期 - 挂载之前 beforeUpdate() {}, //生命周期 - 更新之前 updated() {}, //生命周期 - 更新之后 beforeDestroy() {}, //生命周期 - 销毁之前 destroyed() {}, //生命周期 - 销毁完成 activated() {} //如果页面有keep-alive缓存功能,这个函数会触发 }; </script> src/views/project/travelexpenseapply/index.vue
@@ -1,6 +1,12 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" > <el-row> <!-- <el-col :span="6"> @@ -12,31 +18,68 @@ --> <el-col :span="6"> <el-form-item label="经办人" prop="username"> <el-input v-model="queryParams.username" placeholder="请输入经办人" clearable size="small" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.username" placeholder="请输入经办人" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> </el-col> <el-col :span="8"> <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 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="6"> <el-form-item label="审核状态" prop="recordstatus"> <el-input v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small" v-if="0" @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-input v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small" v-if="0" @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable 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-col :span="4"> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button > </el-form-item> </el-col> </el-row> @@ -44,42 +87,91 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd">新增</el-button> <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" >新增</el-button > <!-- v-hasPermi="['project:funddetail:add']" --> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" :loading="exportLoading" @click="handleExport">导出</el-button> <el-button type="warning" plain icon="el-icon-download" :loading="exportLoading" @click="handleExport" >导出</el-button > </el-col> <!-- v-hasPermi="['project:funddetail:export']" --> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar> </el-row> <el-table :row-class-name="rowClassName" v-loading="loading" :data="reimbursementList" @selection-change="handleSelectionChange" > <el-table :row-class-name="rowClassName" v-loading="loading" :data="reimbursementList" @selection-change="handleSelectionChange" > <!-- <el-table-column type="selection" width="55" align="center" /> <el-table-column label="报销人类别" width="120" align="center" prop="costtype"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_travelexpensebelong" :value="scope.row.costtype" /> </template> </el-table-column>--> <el-table-column label="申请时间" width="150" align="center" prop="createTime"> <el-table-column label="申请时间" width="150" 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="recordstatus" width="160"> <el-table-column label="审核状态" align="center" prop="recordstatus" width="160" > <template slot-scope="scope"> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> </template> </el-table-column> <el-table-column label="经办人" width="150" align="center" prop="username" /> <el-table-column label="经办人" width="150" align="center" prop="username" /> <!-- <el-table-column label="出差人" width="180" align="center" prop="travelers"> </el-table-column>--> <el-table-column label="报销金额" width="150" align="center" prop="amountrequested"> <el-table-column label="报销金额" width="150" align="center" prop="amountrequested" > </el-table-column> <el-table-column label="所属组别" width="150" align="center" prop="deptmentname" /> <el-table-column label="组长" width="150" align="center" prop="managername" /> <el-table-column label="所属组别" width="150" align="center" prop="deptmentname" /> <el-table-column label="组长" width="150" align="center" prop="managername" /> <el-table-column label="出差事由" align="center" prop="reason" /> <!-- <el-table-column label="联系电话" width="120" align="center" prop="phone"> </el-table-column> @@ -89,47 +181,114 @@ </el-table-column> <el-table-column label="报销合计" align="center" prop="financechecher"/>--> <!-- <el-table-column label="财务审核" width="120" align="center" prop="financechecher" /> --> <el-table-column label="捐献者" width="150" align="center" prop="donorname" /> <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column label="捐献者" width="150" align="center" prop="donorname" /> <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-upload2" @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)">修改</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @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-upload2" @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)" >修改</el-button > <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)" >查看</el-button > <!-- v-hasPermi="['project:funddetail:edit']" --> <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)"> <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)" > 下载 </el-button> <!-- v-hasPermi="['project:funddetail:edit']" --> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(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)" >删除</el-button > <!-- v-hasPermi="['project:funddetail:remove']" --> </template> </el-table-column> </el-table> <!-- v-hasPermi="['project:donateconsolationfund:edit']" --> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <!-- 添加或修改费用申请明细对话框 --> <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1400px" append-to-body @close="reset"> <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1400px" append-to-body @close="reset" > <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row><el-col :span="5"> <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 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-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> @@ -154,8 +313,18 @@ </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-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> @@ -164,17 +333,36 @@ <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-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-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 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> @@ -281,116 +469,263 @@ </el-row> <el-row> <el-table :data="rbDetails" border highlight-current-row> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <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"> <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"> <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"> <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 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"> <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-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"> <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, '/')) ); <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)"> }" 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"> <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, '/')) ); <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)"> }" 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"> <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"> <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 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="天数" /> <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"> <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 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"> <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 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"> <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); } " /> <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur=" val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <!-- @@ -405,65 +740,144 @@ </template> </el-table-column> --> <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120" > <template slot-scope="scope"> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> </template> </el-table-column> <el-table-column prop="total" label="合计" align="center" width="110"> <el-table-column prop="total" label="合计" align="center" width="110" > <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'"> <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 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> </template> @@ -475,75 +889,192 @@ </el-row> <el-row style="margin-top: 30px"> <el-table :data="rbPayees" border highlight-current-row> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <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"> <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"> <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"> <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 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"> <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-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"> <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"> <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200" > <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130"> <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"> <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> </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 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'"> <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 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> @@ -590,30 +1121,76 @@ --> <el-form-item label="文件上传" align="left" prop="annexfiles"> <!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> --> <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="remove" accept="image/*,.pdf"> <el-button :disabled="dialogType == 'detail'" size="small" type="primary">上传</el-button> <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="remove" 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 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-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="primary" @click="submitForm" v-if="dialogType == 'edit'" >保 存</el-button > <el-button @click="cancel">取 消</el-button> </div> </el-dialog> @@ -836,7 +1413,7 @@ }, methods: { handleUploadError() { }, handleUploadError() {}, remove(file) { this.fileList.splice(this.fileList.indexOf(file), 1); @@ -855,7 +1432,7 @@ this.$modal.msgSuccess(response.msg); this.fileList.push({ name: response.fileName, url: response.fileName }); } else { console.log(response.msg);; console.log(response.msg); } }, @@ -964,7 +1541,7 @@ row.days = ( Math.floor( Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24) (1000 * 3600 * 24) ) + 1 ).toString(); } else { @@ -1300,8 +1877,8 @@ this.form = response.data; this.fileList = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; @@ -1359,8 +1936,8 @@ //附件 this.fileList = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1554,7 +2131,7 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该条记录?") .then(function () { .then(function() { // 删除details内的数据 return delReimbursement(ids); }) @@ -1563,7 +2140,7 @@ this.getList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 导出按钮操作 */ @@ -1579,7 +2156,7 @@ this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => { }); .catch(() => {}); }, //新增一行 @@ -1862,7 +2439,7 @@ this.form.amountrequested = allSum.toFixed(2); this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); } catch { } } catch {} }, //金额数字转换成大写 @@ -1968,11 +2545,10 @@ //明显提示审批退回记录 rowClassName({ row, column, rowIndex, columnIndex }) { //此判断为最后三行 if (row.backflowlevel==199) { if (row.backflowlevel == 199) { return "addClassva"; } }, } } }; </script> @@ -1981,7 +2557,7 @@ <style> .addClassva { /* background: #10aec2; */ background:#10aec2!important; background: #93b5cf !important; /* color:whitesmoke; */ } </style> src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -3,19 +3,36 @@ <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-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 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-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> @@ -40,8 +57,18 @@ </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-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> @@ -50,17 +77,36 @@ <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-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-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 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> @@ -166,191 +212,441 @@ <el-col :span="20">报销明细</el-col> </el-row> <el-row> <el-table :data="rbDetails" border highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <el-table :data="rbDetails" ref="table" border highlight-current-row :summary-method="getSummaries" 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"> <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"> <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"> <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 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"> <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-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"> <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, '/')) ); <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)"> }" 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"> <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, '/')) ); <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)"> }" 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"> <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"> <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 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="天数" /> <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"> <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 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"> <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 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"> <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); } " /> <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"> <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 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"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <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); } " /> <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"> <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120" > <template slot-scope="scope"> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> </template> </el-table-column> <el-table-column prop="total" label="合计" align="center" width="110" fixed="right"> <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"> <el-table-column fixed="right" label="操作" align="center" width="120" > <template slot-scope="scope"> <el-button type="text" size="mini" @click="addDetailRow(scope.$index)" v-if="operationType == 'edit'">新增</el-button> <el-button @click.native.prevent=" deleteDetailRow(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="operationType == 'edit'">删除</el-button> <el-button @click.native.prevent=" Filepopup(scope.$index, rbDetails, scope.row) " type="text" size="small">票据</el-button> <el-button type="text" size="mini" @click="addDetailRow(scope.$index)" v-if="operationType == 'edit'" >新增</el-button > <el-button @click.native.prevent=" deleteDetailRow(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="operationType == 'edit'" >删除</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> @@ -359,60 +655,153 @@ <el-col :span="20">打款明细</el-col> </el-row> <el-row style="margin-top: 5px"> <el-table :data="rbPayees" border highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <el-table :data="rbPayees" border highlight-current-row :summary-method="getSummaries" 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"> <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"> <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"> <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 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"> <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-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"> <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"> <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200" > <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130"> <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> <el-table-column prop="remark" slot="" label="请款说明" align="center" fixed > <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="说明" /> </template> @@ -425,35 +814,74 @@ </el-date-picker> </template> </el-table-column>--> <el-table-column label="操作" align="center" width="100" v-if="operationType == 'edit'"> <el-table-column label="操作" align="center" width="100" v-if="operationType == '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 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 style="margin-top: 25px; margin-bottom: 5px" v-if="operationType != 'edit'"> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType != 'edit'" > <el-col :span="20">审核记录</el-col> </el-row> <el-row v-if="operationType != 'add'"> <el-table :data="fundflowList" border> <el-table-column label="审核日期" align="center" width="200" prop="createTime" /> <el-table-column label="审核人" align="center" width="150" prop="checkusername" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion"> <el-table-column label="审核日期" align="center" width="200" prop="createTime" /> <el-table-column label="审核人" align="center" width="150" 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-column label="审核备注" align="center" prop="flowcontent" /> </el-table> </el-row> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType == 'check'"> <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"> @@ -472,8 +900,18 @@ </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="operationType == 'edit'">保 存</el-button> <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'">提 交</el-button> <el-button type="primary" @click="submitForm" v-if="operationType == 'edit'" >保 存</el-button > <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'" >提 交</el-button > <!--<el-button @click="cancel">退 出</el-button>--> </div> </div> @@ -482,12 +920,31 @@ <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="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="operationType == 'detail'" size="small" type="primary">上传</el-button> <el-upload 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="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf" > <el-button :disabled="operationType == 'detail'" size="small" type="primary" >上传</el-button > </el-upload> </div> <!-- <div @@ -501,7 +958,13 @@ </div> <div v-if="this.previewpdf" class="pdfimgmin"> <img :src="pdfimg" /> <!-- <img :src="pdfimg" /> --> <el-image style="width: 100px; height: 100px" :src="pdfimg" :preview-src-list="pdfimgsrcList" > </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> @@ -590,6 +1053,7 @@ value: 0, label: "" }, pdfimgsrcList: [], hintitle: "选中左侧已上传文件预览查看", atpresent: "", @@ -750,9 +1214,14 @@ this.handleCheck(curId); } }, updated() { this.$nextTick(() => { this.$refs["table"].doLayout(); }); }, methods: { handleUploadError() { }, handleUploadError() {}, remove(file, fileList) { const rbDetails = [...this.rbDetails]; @@ -805,6 +1274,8 @@ this.previewpdf = true; if (item.url) { this.pdfimg = item.url; this.pdfimgsrcList=[] this.pdfimgsrcList.push(item.url); } else { this.pdfimg = item.response.url; } @@ -820,6 +1291,9 @@ treeselect().then(response => { this.deptOptions = response.data; }); }, cellCilicksa(row) { console.log(row); }, //获取人员列表 @@ -912,7 +1386,7 @@ row.days = ( Math.floor( Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24) (1000 * 3600 * 24) ) + 1 ).toString(); } else { @@ -951,14 +1425,15 @@ //伙食费补助:城市(西藏,新疆,青海.120)(其他100) if (tempStr == "杭州") { row.foodallowance = ""; } else if (tempStr == "西藏" || tempStr == "新疆" || tempStr == "青海") { } else if ( tempStr == "西藏" || tempStr == "新疆" || tempStr == "青海" ) { row.foodallowance = (parseInt(row.days) * 120).toString(); } else { } else { row.foodallowance = (parseInt(row.days) * 100).toString(); } //计算合计 this.sumRowFee(row); @@ -1234,8 +1709,8 @@ this.form = response.data; this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; @@ -1279,7 +1754,6 @@ listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); }); }, @@ -1297,8 +1771,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1358,8 +1832,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1429,7 +1903,7 @@ this.open = false; this.$modal.msgSuccess("提交审核成功!"); // 关闭窗口 this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); }); }, @@ -1547,7 +2021,7 @@ this.open = false; // 关闭窗口 this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); // this.getList(); @@ -1577,7 +2051,7 @@ this.open = false; // 关闭窗口 this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); }) .catch(err => { @@ -1593,7 +2067,7 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该条记录?") .then(function () { .then(function() { // 删除details内的数据 return delReimbursement(ids); }) @@ -1602,7 +2076,7 @@ this.getList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 导出按钮操作 */ @@ -1618,7 +2092,7 @@ this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => { }); .catch(() => {}); }, //新增一行 @@ -1901,7 +2375,7 @@ this.form.amountrequested = allSum.toFixed(2); this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); } catch { } } catch {} }, //金额数字转换成大写