| @@ -0,0 +1,216 @@ | |||
| import request from '@/utils/request' | |||
| // 获取摘要列表 | |||
| export const summaryListData = () => { | |||
| return request({ | |||
| url: 'api/finance/summary/listData', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 获取会计科目列表 | |||
| export const subjectData = (query) => { | |||
| return request({ | |||
| url: 'api/finance/subject/listByUser', | |||
| method: 'get', | |||
| params: query, | |||
| }) | |||
| } | |||
| // 获取会计科目列表 | |||
| export const subjectDataListAll = (params) => { | |||
| return request({ | |||
| url: 'api/finance/subject/listAll', | |||
| method: 'get', | |||
| params: params, | |||
| }) | |||
| } | |||
| //保存或新增品凭证 | |||
| export function voucherSaveOrUpdate(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/saveOrUpdate', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function relateVoucher(path, data) { | |||
| return request({ | |||
| // url: 'api/finance/voucher/relateAssetToVoucher', | |||
| url: path, | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //获取最大凭证号 | |||
| export function voucherGetCurrentNum() { | |||
| return request({ | |||
| url: 'api/finance/voucher/getCurrentNum', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 保存或新增凭证模板信息 | |||
| export const mouldSaveOrUpdate = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/mould/saveOrUpdate', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 模板凭证列表 | |||
| export const voucherMouldList = () => { | |||
| return request({ | |||
| url: 'api/finance/voucher/mould/list', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //查询凭证信息明细 | |||
| export const voucherDetail = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/detail', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //查询凭证归档动作 | |||
| export const archiveVoucher = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/archiveVoucher', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //查询辅助核算列表 | |||
| export const assistListByAssist = (data) => { | |||
| return request({ | |||
| url: 'api/finance/assist/listByAssist', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //通过科目id获取科目余额 | |||
| export const getBySubjectId = (data) => { | |||
| return request({ | |||
| url: 'api/finance/balance/getBySubjectId', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //上一步 | |||
| export const voucherPre = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/pre', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //下一步 | |||
| export const voucherNext = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/next', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //删除附件 | |||
| export const voucherDelFile = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/delFile', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //模板下载 | |||
| export const importTemplate = () => { | |||
| return request({ | |||
| url: 'api/finance/voucher/importTemplate', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //转入凭证动作 | |||
| export const billinVoucher = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/billinVoucher', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //转出动作凭证 | |||
| export const billoutVoucher = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/billoutVoucher', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //获取凭证位置信息 | |||
| export const voucherOperatorStatistics = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/voucherOperatorStatistics', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //凭证贴票统计 | |||
| export const voucherDetailStick = (id) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/voucherDetail/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //凭证打印模板 | |||
| export const financePrintQuery = (data) => { | |||
| return request({ | |||
| url: 'api/finance/print/query', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| export const generateBalanceVoucher = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/generateBalanceVoucher', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| // 模板凭证列表 | |||
| export const subjectDatalistByYear = () => { | |||
| return request({ | |||
| url: 'api/finance/subject/listByYear', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 查询级联账套下拉 | |||
| export function listByDeptId(query) { | |||
| return request({ | |||
| url: 'api/finance/book/listByDeptId', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 查询用户个人信息 | |||
| export function getUserProfile() { | |||
| return request({ | |||
| url: 'api/system/user/profile/get', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -0,0 +1,120 @@ | |||
| import request from '@/utils/request'; | |||
| //结账 | |||
| export function balanceCarryOver() { | |||
| return request({ | |||
| url: '/finance/balance/carryOver', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //反结到上期 | |||
| export function balanceCarryOverBack() { | |||
| return request({ | |||
| url: '/finance/balance/carryOverBack', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //反结所选日期 | |||
| export function balanceCarryTo(carryToMonth) { | |||
| return request({ | |||
| url: '/finance/balance/carryTo', | |||
| method: 'post', | |||
| params: carryToMonth, | |||
| }) | |||
| } | |||
| //是否断号 | |||
| export function isBrokenNumber() { | |||
| return request({ | |||
| url: '/finance/voucher/isBrokenNumber', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //是否存在未审核的凭证 | |||
| export function existNotAudited() { | |||
| return request({ | |||
| url: '/finance/voucher/existNotAudited', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //是否资产负债表平衡 | |||
| export function zcfzBalance() { | |||
| return request({ | |||
| url: '/finance/balance/zcfzBalance', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //试算平衡 | |||
| export function trialBalance() { | |||
| return request({ | |||
| url: '/finance/balance/trialBalance', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //获取凭证字select选项 | |||
| export function getVoucherWordList() { | |||
| return request({ | |||
| url: '/finance/balance/getVoucherWordList', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //生成凭证 | |||
| export const generateVoucher = (data) => { | |||
| return request({ | |||
| url: '/finance/balance/generateVoucher', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //结账到12月 | |||
| export function handleJz12Month() { | |||
| return request({ | |||
| url: '/finance/balance/carryOverBatch', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //反结到上年12月份 | |||
| export function balanceCarryOverBackToLastYear() { | |||
| return request({ | |||
| url: '/finance/balance/carryOverBackToLastYear', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| //生成损益结转凭证 | |||
| export const generateVoucher_sunyijiezhuan = (data) => { | |||
| return request({ | |||
| url: '/finance/balance/generateVoucher_sunyijiezhuan', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //生成收益分配凭证 | |||
| export const generateVoucher_shouyifenpei = (data) => { | |||
| return request({ | |||
| url: '/finance/balance/generateVoucher_shouyifenpei', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 检查损益类科目余额 | |||
| export function checkSYJZ() { | |||
| return request({ | |||
| url: '/finance/balance/checkSYJZ', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| @@ -0,0 +1,131 @@ | |||
| import request from '@/utils/request' | |||
| //查询查询当前登录账套信息 年月 | |||
| export function getLoginBook() { | |||
| return request({ | |||
| url: 'api/finance/book/getLoginBook', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //查询凭证信息列表无排序 | |||
| export function voucherRelatedList(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/listNoPage', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //查询凭证信息列表 | |||
| export function voucherList(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/list', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //删除凭证信息 | |||
| export function delVoucher(id, resort) { | |||
| return request({ | |||
| url: 'api/finance/voucher/remove/' + id, | |||
| method: 'get', | |||
| params: {resort} | |||
| }) | |||
| } | |||
| //审核凭证信息 | |||
| export function voucherAudit(id) { | |||
| return request({ | |||
| url: 'api/finance/voucher/audit/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //审核全部凭证信息 | |||
| export function voucherAuditAll() { | |||
| return request({ | |||
| url: 'api/finance/voucher/allAudit/month', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //取消审核凭证信息 | |||
| export function cancelVoucherAudit(id) { | |||
| return request({ | |||
| url: 'api/finance/voucher/cancelAudit/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //断号重排 | |||
| export function voucherResort() { | |||
| return request({ | |||
| url: 'api/finance/voucher/resort', | |||
| method: 'post' | |||
| }) | |||
| } | |||
| //插入排序 | |||
| export const voucherInsertSort = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/insertSort', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //导出 | |||
| export const voucherExport = (data) => { | |||
| return request({ | |||
| url: 'api/finance/voucher/export', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 取消全部审核凭证信息 | |||
| export function cancelAuditVoucherMonth(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/cancelAuditVoucherMonth', | |||
| method: 'post', | |||
| data: data, | |||
| }) | |||
| } | |||
| //按年删除凭证 | |||
| export function deleteVoucherByYear(year) { | |||
| return request({ | |||
| url: 'api/finance/voucher/deleteByYear/' + year, | |||
| method: 'post' | |||
| }) | |||
| } | |||
| // 多个id查询凭证 | |||
| export function voucherDetails(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/details/' + data, | |||
| method: 'get', | |||
| }) | |||
| } | |||
| // 全部复核 | |||
| export function accountAllVoucher(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/accountAll', | |||
| method: 'post', | |||
| data: data, | |||
| }) | |||
| } | |||
| // 取消全部复核凭证信息 | |||
| export function cancelAccountVoucherMonth(data) { | |||
| return request({ | |||
| url: 'api/finance/voucher/cancelAccountVoucherMonth', | |||
| method: 'post', | |||
| data: data, | |||
| }) | |||
| } | |||
| @@ -0,0 +1,105 @@ | |||
| import request from '@/utils/request' | |||
| // 查询凭证导入列表 | |||
| export function listProof(query) { | |||
| return request({ | |||
| url: '/finance/proof/list', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 查询凭证导入列表详情 | |||
| export function listProofDetail(query) { | |||
| return request({ | |||
| url: '/finance/proof/listDetail', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 导出凭证导入 | |||
| export function exportProof(query) { | |||
| return request({ | |||
| url: '/finance/proof/export', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 导出凭证导入 | |||
| export function exportProofDetail(query) { | |||
| return request({ | |||
| url: '/finance/proof/export2', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 查询凭证导入详细 | |||
| export function getProof(id) { | |||
| return request({ | |||
| url: '/finance/proof/get/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 新增凭证导入 | |||
| export function addProof(data) { | |||
| return request({ | |||
| url: '/proof/proof/add', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 修改凭证导入 | |||
| export function updateProof(data) { | |||
| return request({ | |||
| url: '/finance/proof/edit', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 删除凭证导入 | |||
| export function delProof(id) { | |||
| return request({ | |||
| url: '/finance/proof/remove/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //模板下载 | |||
| export function importTemplate(){ | |||
| return request({ | |||
| url: '/finance/proof/importTemplate', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //模板下载 | |||
| export const importData = () => { | |||
| return request({ | |||
| url: '/finance/proof/importData', | |||
| method: 'get', | |||
| }) | |||
| } | |||
| //记账 | |||
| export function jz (data){ | |||
| return request({ | |||
| url: '/finance/proof/jz', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| //结账 | |||
| export function balanceCarryOverTo12() { | |||
| return request({ | |||
| url: '/finance/proof/carryOver', | |||
| method: 'post', | |||
| }) | |||
| } | |||
| @@ -0,0 +1,9 @@ | |||
| import request from '@/utils/request' | |||
| export function mouldDelete(query) { | |||
| return request({ | |||
| url: '/finance/voucher/mould/delete', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| @@ -0,0 +1,36 @@ | |||
| import request from '@/utils/request' | |||
| //查询凭证附件数量 | |||
| export function voucherAttachmentCount(data) { | |||
| return request({ | |||
| url: '/finance/voucher/voucherAttachmentCount', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //查询凭证数量 | |||
| export function voucherCount(data) { | |||
| return request({ | |||
| url: '/finance/voucher/voucherCount', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //凭证汇总接口 | |||
| export function voucherSumList(data) { | |||
| return request({ | |||
| url: '/finance/voucher/voucherSumList', | |||
| method: 'get', | |||
| params: data | |||
| }) | |||
| } | |||
| //汇总余额 | |||
| export function computeVoucherToBalance() { | |||
| return request({ | |||
| url: '/finance/balance/computeVoucherToBalance', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -153,3 +153,14 @@ export function selectDictLabel(datas, value) { | |||
| }) | |||
| return actions.join(''); | |||
| } | |||
| export function array_toMap(arr, byFunc, overriding) | |||
| { | |||
| let res = {}; | |||
| arr.forEach((x) => { | |||
| let a = byFunc(x); | |||
| if(!res.hasOwnProperty(a) || overriding) | |||
| res[a] = x; | |||
| }); | |||
| return res; | |||
| } | |||
| @@ -4,39 +4,394 @@ | |||
| <div class="title"><i></i>凭证详情</div> | |||
| <div class="close" @click="close"></div> | |||
| </div> | |||
| <div class="echarts_main scrollbar"> | |||
| <div> | |||
| <p>项目名称</p> | |||
| <p>{{data.cashflowName}}</p> | |||
| <!-- <div class="echarts_main scrollbar">--> | |||
| <!-- <div>--> | |||
| <!-- <p>项目名称</p>--> | |||
| <!-- <p>{{data.cashflowName}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>科目编码</p>--> | |||
| <!-- <p>{{data.subjectId}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>科目名称</p>--> | |||
| <!-- <p>{{data.subjectNameAll}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>借方金额</p>--> | |||
| <!-- <p>{{data.jieAmount}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>贷方金额</p>--> | |||
| <!-- <p>{{data.daiAmount}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>数量</p>--> | |||
| <!-- <p>{{data.quantityNum}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>单位</p>--> | |||
| <!-- <p>{{data.quantityUnit}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- <div>--> | |||
| <!-- <p>凭证摘要</p>--> | |||
| <!-- <p>{{data.voucherSummary}}</p>--> | |||
| <!-- </div>--> | |||
| <!-- </div>--> | |||
| <div class="main-content"> | |||
| <div class="voucher-title"> | |||
| {{ voucherTitle }} | |||
| </div> | |||
| <div> | |||
| <p>科目编码</p> | |||
| <p>{{data.subjectId}}</p> | |||
| </div> | |||
| <div> | |||
| <p>科目名称</p> | |||
| <p>{{data.subjectNameAll}}</p> | |||
| </div> | |||
| <div> | |||
| <p>借方金额</p> | |||
| <p>{{data.jieAmount}}</p> | |||
| </div> | |||
| <div> | |||
| <p>贷方金额</p> | |||
| <p>{{data.daiAmount}}</p> | |||
| </div> | |||
| <div> | |||
| <p>数量</p> | |||
| <p>{{data.quantityNum}}</p> | |||
| </div> | |||
| <div> | |||
| <p>单位</p> | |||
| <p>{{data.quantityUnit}}</p> | |||
| </div> | |||
| <div> | |||
| <p>凭证摘要</p> | |||
| <p>{{data.voucherSummary}}</p> | |||
| <div class="main-center"> | |||
| <div class="voucher-header" v-if="!isTemplate"> | |||
| <div class="block mr" > | |||
| <div class="title">凭证字:{{searchFormField.voucherWord}}{{searchFormField.voucherId}}号</div> | |||
| </div> | |||
| <div class="block" > | |||
| <div class="title">日期:{{searchFormField.selectDate}}</div> | |||
| </div> | |||
| <div class="right"> | |||
| <div class="block" > | |||
| <div class="title">附单据</div> | |||
| <div class="title">{{searchFormField.attachedNum}}</div> | |||
| <div class="title">张</div> | |||
| </div> | |||
| <div class="block attachment" @click="poploadVisibleFun" :class="[(uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == '') ? 'disabled' : '']">附件</div> | |||
| </div> | |||
| </div> | |||
| <div class="voucher-body"> | |||
| <ul class="list header clearfix"> | |||
| <li> | |||
| <div class="serial"></div> | |||
| <div class="abstract">摘 要</div> | |||
| <div class="subjects">会 计 科 目</div> | |||
| <div class="borrower"> | |||
| <div class="moneyTit">借 方 金 额</div> | |||
| <div class="moneyUint"> | |||
| <span>亿</span> <span>千</span> <span>百</span> | |||
| <span>十</span> <span>万</span> <span>千</span> | |||
| <span>百</span> <span>十</span> <span>元</span> | |||
| <span>角</span> <span class="last">分</span> | |||
| </div> | |||
| </div> | |||
| <div class="theLender"> | |||
| <div class="moneyTit">贷 方 金 额</div> | |||
| <div class="moneyUint"> | |||
| <span>亿</span> <span>千</span> <span>百</span> | |||
| <span>十</span> <span>万</span> <span>千</span> | |||
| <span>百</span> <span>十</span> <span>元</span> | |||
| <span>角</span> <span class="last">分</span> | |||
| </div> | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| <ul class="list body clearfix"> | |||
| <li v-for="(item, index) in chargeItme.items" :key="index + 1"> | |||
| <div class="serial"> | |||
| <span class="seq">{{ index + 1 }}</span> | |||
| <!-- <div class="operateIcon">--> | |||
| <!-- <div class="add-btn"></div>--> | |||
| <!-- <div class="remove-btn"></div>--> | |||
| <!-- </div>--> | |||
| </div> | |||
| <div class="abstract"> | |||
| <div class="displayText abstractText" v-show="chargeItme.dataStatus[index].voucherSummary">{{ item.voucherSummary }}</div> | |||
| <!-- <div class="abstractMore" :class="{show: !chargeItme.dataStatus[index].voucherSummary,}"></div>--> | |||
| <!-- :popper-append-to-body="false" --> | |||
| <el-autocomplete v-model="item.voucherSummary" placeholder="请输入内容" :popper-append-to-body="false" :ref="'voucherSummary' + index" | |||
| v-if="!chargeItme.dataStatus[index].voucherSummary" class="abstract-select"> | |||
| <template slot-scope="{ item }"> | |||
| <div class="name"> | |||
| {{ (item.value = item.summary) }} | |||
| </div> | |||
| </template> | |||
| </el-autocomplete> | |||
| </div> | |||
| <div class="subjects"> | |||
| <div class="displayText subjectsText" v-show="chargeItme.dataStatus[index].subjectNameAll"> | |||
| <p class="subjectsType"> | |||
| {{ item.subjectId + " " }}{{ item.subjectNameAll }} | |||
| </p> | |||
| <p class="subjectsBalanceOrigin" v-if="item.subjectMoney !== '' && (item.jieAmount != '' || item.daiAmount != '')"> | |||
| 之前余额:<span :class="[item.subjectMoney < 0 ? 'red' : '']">{{(item.subjectMoney * 100 / 100).toFixed(2)}}</span> | |||
| </p> | |||
| <p class="subjectsBalance" v-if="item.subjectMoney !== ''"> | |||
| 余额:<span :class="[calcDetailBalance(item) < 0 ? 'red' : '']">{{(calcDetailBalance(item) * 100 / 100).toFixed(2)}}</span> | |||
| </p> | |||
| </div> | |||
| <div class="quantity_main" v-show="chargeItme.dataStatus[index].isQuantity"> | |||
| <div class="line-quan"> | |||
| <div class="title">数量:</div><input type="text" class="ipt" placeholder="请输入" :disabled="isCheckedBy" v-model="item.quantityNum" @input="quanNumValid(item.quantityNum,'quantityNum',index)" /> | |||
| </div> | |||
| <div class="line-quan"> | |||
| <div class="title">单位:</div><input type="text" class="ipt" placeholder="请输入" :disabled="isCheckedBy" v-model="item.quantityUnit" /> | |||
| </div> | |||
| </div> | |||
| <div class="iconMore_block" v-if="!isView && !isCheckedBy"> | |||
| <div class="copyMore" :class="{show: !chargeItme.dataStatus[index].subjectNameAll, isCopyShow:item.subjectId!=''}" title="复制科目"></div> | |||
| <div class="pasteMore" :class="{show: !chargeItme.dataStatus[index].subjectNameAll}" title="粘贴科目"></div> | |||
| <div class="subjectsMore" :class="{ show: !chargeItme.dataStatus[index].subjectNameAll,}" title="更多科目"></div> | |||
| <div class="contractMore" v-if="chargeItme.dataStatus[index].isContraction && !isModifyType" title="关联合同收款"></div> | |||
| </div> | |||
| <el-select v-model="item.subjectId" filterable placeholder="请选择" class="subjects-select" :popper-append-to-body="false" :ref="'subjectNameAll' + index" | |||
| v-if="!chargeItme.dataStatus[index].subjectNameAll" @blur="blurInput('subjectNameAll', index, 1)" | |||
| @change="changeInput('change', 'subjectNameAll', index, 1, item)" | |||
| @visible-change="visibleInput($event, 'subjectNameAll', index, 1)" | |||
| @keyup.enter.native="changeInput('keydown', 'subjectNameAll', index, 1, item) "> | |||
| <el-option class="abstract-option" v-for="(item, length) in SubjectsList" :key="length" :label="item.subjectId + ' ' + item.subjectNameAll" :value="item.subjectId"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <!--计算器背景--> | |||
| <div class="computeModuleBg" v-show="chargeItme.dataStatus[index].jieComputeAmount==false" ></div> | |||
| <div class="borrower"> | |||
| <div class="borrowerText" v-show="chargeItme.dataStatus[index].jieAmount" > | |||
| <!-- <span | |||
| v-if="item.jieAmount == 0 || item.jieAmount == ''" | |||
| ></span> --> | |||
| <span v-if="item.jieAmount === ''"></span> | |||
| <span class="theLenderRed" v-else-if="item.jieAmount < 0"> | |||
| {{ -(Number(item.jieAmount) * 100).toFixed(0) }} | |||
| </span> | |||
| <span v-else> | |||
| {{ (Number(item.jieAmount) * 100).toFixed(0) }} | |||
| </span> | |||
| </div> | |||
| <!--借方计算器--> | |||
| <div class="computeModule" v-show="chargeItme.dataStatus[index].jieComputeAmount==false" :style="{ width : voucherComputeWidth+'px'}"> | |||
| <el-input :ref="'jieComputeModule' + index" v-model="voucherComputeIpt"></el-input> | |||
| </div> | |||
| <el-input v-model="item.jieAmount" class="borrower-input" :ref="'jieAmount' + index" v-if="!chargeItme.dataStatus[index].jieAmount" maxlength="13" | |||
| ></el-input> | |||
| </div> | |||
| <div class="theLender"> | |||
| <div class="theLenderText" v-show="chargeItme.dataStatus[index].daiAmount"> | |||
| <span v-if="item.daiAmount == 0 || item.daiAmount == ''"></span> | |||
| <span class="theLenderRed" v-else-if="item.daiAmount < 0"> | |||
| {{ -(Number(item.daiAmount) * 100).toFixed(0) }} | |||
| </span> | |||
| <span v-else> | |||
| {{ (Number(item.daiAmount) * 100).toFixed(0) }} | |||
| </span> | |||
| </div> | |||
| <!--贷方计算器--> | |||
| <div class="computeModule" v-show="chargeItme.dataStatus[index].daiComputeAmount==false" :style="{ width : voucherComputeWidth+'px'}"> | |||
| <el-input :ref="'daiComputeModule' + index" v-model="voucherComputeIpt"></el-input> | |||
| </div> | |||
| <el-input v-model="item.daiAmount" class="borrower-input" :ref="'daiAmount' + index" v-if="!chargeItme.dataStatus[index].daiAmount" maxlength="13" | |||
| ></el-input> | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| <ul class="list footer clearfix"> | |||
| <li> | |||
| <div class="combined">合 计:{{ capitalAmount }}</div> | |||
| <div class="borrower"> | |||
| <div class="borrowerText"> | |||
| <span v-if="debitAmount == 0 || debitAmount == ''"></span> | |||
| <span class="theLenderRed" v-else-if="debitAmount < 0">{{ -(Number(debitAmount) * 100).toFixed(0) }}</span> | |||
| <span v-else>{{(Number(debitAmount) * 100).toFixed(0)}}</span> | |||
| </div> | |||
| </div> | |||
| <div class="theLender"> | |||
| <div class="theLenderText"> | |||
| <span v-if="lenderAmount == 0 || lenderAmount == ''"></span> | |||
| <span class="theLenderRed" v-else-if="lenderAmount < 0">{{ -(Number(lenderAmount) * 100).toFixed(0) }}</span> | |||
| <span v-else>{{(Number(lenderAmount) * 100).toFixed(0)}}</span> | |||
| </div> | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| <div class="assist-accounting" v-if="assistAccounting.numRows == '' && (this.$route.query.id != undefined || this.redDashedItems != undefined) && assistAccounting.allDataList.length != 0 && | |||
| !( assistAccounting.accordingState && assistAccounting.numRows !== '')"> | |||
| <div class="assist-title"> | |||
| 辅助核算{{ assistAccounting.accordingType }} | |||
| </div> | |||
| <div class="assist-main voucher-body"> | |||
| <ul class="list header clearfix"> | |||
| <li> | |||
| <div class="companyUnit" :style="{ width: 'calc((100% - 442px) * 0.3)' }">单位</div> | |||
| <div class="personal" :style="{ width: 'calc((100% - 442px) * 0.2)' }">个人</div> | |||
| <div class="numberOf" :style="{ width: 'calc((100% - 442px) * 0.2)' }">部门</div> | |||
| <div class="projects" :style="{ width: 'calc((100% - 442px) * 0.3)' }">项目</div> | |||
| <div class="borrower" :style="{ width: '221px' }">借方金额</div> | |||
| <div class="theLender" :style="{ width: '221px' }">贷方金额</div> | |||
| </li> | |||
| </ul> | |||
| <ul class="list body clearfix"> | |||
| <li v-for="(item, length) in assistAccounting.allDataList" :key="length"> | |||
| <div class="companyUnit" :style="{ width: 'calc((100% - 442px) * 0.3)' }"> | |||
| <el-select v-model="item.assistTypeId1" placeholder="无" filterable @change="$forceUpdate()" class="andFrom-select" :disabled="true"> | |||
| <el-option v-for="(item, length) in assistAccounting.unitSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="personal" :style="{ width: 'calc((100% - 442px) * 0.2)' }"> | |||
| <el-select placeholder="无" filterable class="andFrom-select" v-model="item.assistTypeId2" @change="$forceUpdate()" :disabled="true"> | |||
| <el-option v-for="(item, length) in assistAccounting.personalSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="numberOf" :style="{ width: 'calc((100% - 442px) * 0.2)' }"> | |||
| <el-select v-model="item.assistTypeId3" placeholder="无" filterable class="andFrom-select" @change="$forceUpdate()" :disabled="true"> | |||
| <el-option v-for="(item, length) in assistAccounting.numSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="projects" :style="{ width: 'calc((100% - 442px) * 0.3)' }"> | |||
| <el-select v-model="item.assistTypeId4" placeholder="无" filterable @change="$forceUpdate()" class="andFrom-select" :disabled="true"> | |||
| <el-option v-for="(item, length) in assistAccounting.projectSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="borrower" :style="{ width: '221px' }"> | |||
| <el-input v-model="item.jieAmount" @input="$forceUpdate()" placeholder="无" class="andFrom-input" :disabled="true" @change="changeAuxiliaryFun('jieAmount', length)"></el-input> | |||
| </div> | |||
| <div class="theLender" :style="{ width: '221px' }"> | |||
| <el-input v-model="item.daiAmount" @input="$forceUpdate()" placeholder="无" class="andFrom-input" :disabled="true" @change="changeAuxiliaryFun('daiAmount', length)"></el-input> | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| <div class="assist-accounting" v-if="assistAccounting.accordingState && assistAccounting.numRows !== ''"> | |||
| <div class="assist-title">辅助核算</div> | |||
| <div class="assist-main voucher-body"> | |||
| <ul class="list header clearfix"> | |||
| <li> | |||
| <div class="companyUnit" :style="{ width: computeStyle('dw', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('1')">单位</div> | |||
| <div class="personal" :style="{width: computeStyle('gr', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('2')">个人</div> | |||
| <div class="numberOf" :style="{width: computeStyle('sl', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('3')">部门</div> | |||
| <div class="projects" :style="{width: computeStyle('xm', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('4')">项目</div> | |||
| <div class="borrower">借方金额</div> | |||
| <div class="theLender">贷方金额</div> | |||
| </li> | |||
| </ul> | |||
| <ul class="list body clearfix"> | |||
| <li v-for="(item, length) in assistAccounting.dataList[assistAccounting.numRows]" :key="length"> | |||
| <div class="companyUnit" :style="{width: computeStyle('dw', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('1')"> | |||
| <el-select v-model="assistAccounting.dataList[assistAccounting.numRows][length].assistTypeId1" placeholder="请选择单位" filterable | |||
| @change="auxiliaryFun()" class="andFrom-select" :ref="'assistTypeId1' + length" :disabled="!assistAccounting.accordingType.includes('1')"> | |||
| <el-option v-for="(item, length) in assistAccounting.unitSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="personal" :style="{width: computeStyle('gr', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('2')"> | |||
| <el-select placeholder="请选择个人" filterable class="andFrom-select" v-model="assistAccounting.dataList[assistAccounting.numRows][length].assistTypeId2" | |||
| @change="auxiliaryFun()" :ref="'assistTypeId2' + length" :disabled="!assistAccounting.accordingType.includes('2')"> | |||
| <el-option v-for="(item, length) in assistAccounting.personalSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="numberOf" :style="{width: computeStyle('sl', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('3')"> | |||
| <el-select v-model="assistAccounting.dataList[assistAccounting.numRows][length].assistTypeId3" placeholder="请选择部门" filterable class="andFrom-select" :ref="'assistTypeId3' + length" | |||
| @change="auxiliaryFun()" :disabled="!assistAccounting.accordingType.includes('3')"> | |||
| <el-option v-for="(item, length) in assistAccounting.numSelectList" :key="length" :label="item.name" :value="item.id"></el-option></el-select> | |||
| </div> | |||
| <div class="projects" :style="{width: computeStyle('xm', assistAccounting.accordingType),}" v-if="assistAccounting.accordingType.includes('4')"> | |||
| <el-select v-model="assistAccounting.dataList[assistAccounting.numRows][length].assistTypeId4" placeholder="请选择项目" filterable :ref="'assistTypeId4' + length" | |||
| @change="auxiliaryFun()" class="andFrom-select" :disabled="!assistAccounting.accordingType.includes('4')"> | |||
| <el-option v-for="(item, length) in assistAccounting.projectSelectList" :key="length" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| </div> | |||
| <div class="borrower"> | |||
| <el-input v-model="assistAccounting.dataList[assistAccounting.numRows][length].jieAmount" @input="auxiliaryFun()" placeholder="请输入借方金额" class="andFrom-input" | |||
| @change="changeAuxiliaryFun('jieAmount', length)"></el-input> | |||
| </div> | |||
| <div class="theLender"> | |||
| <el-input v-model="assistAccounting.dataList[assistAccounting.numRows][length].daiAmount" @input="auxiliaryFun()" placeholder="请输入贷方金额" class="andFrom-input" | |||
| @change="changeAuxiliaryFun('daiAmount', length)"></el-input> | |||
| </div> | |||
| <div class="operateIcon"> | |||
| <i class="add-btn"></i> | |||
| <i class="remove-btn"></i> | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| <div class="voucher-footer" v-if="!isTemplate"> | |||
| <div class="prepared-main"> | |||
| <p class="prepared">制单员:{{ searchFormField.userName }}</p> | |||
| <p class="accountedby"><span class="accountedby-content">记账员:{{ searchFormField.accountedBy }}</span></p> | |||
| <p class="audit">审核员:<span v-if="isCheckedBy && approvedcredentials">{{ searchFormField.checkedBy }}</span><span v-else class="audit-placeholder"></span></p> | |||
| </div> | |||
| <div class="approval-main" v-if="uploadImg.uploadImgData.id!=null && uploadImg.uploadImgData.id!=''"> | |||
| <div class="approver_wrap"> | |||
| <!-- <div class="approver">理财小组:{{searchFormField.barCodeList}}</div>--> | |||
| <!-- <div class="approver_icon"></div>--> | |||
| </div> | |||
| <div class="approver_time" v-if="!(searchFormField.checkedTime==''||searchFormField.checkedTime==null)">审批时间:{{searchFormField.checkedTime}}</div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <el-dialog :title="visiblePop.uploadTitle" :visible.sync="visiblePop.uploadVisible" width="800px" append-to-body :before-close="closeHighShotMeter"> | |||
| <div class="upload_attachments"> | |||
| <div class="left_updata_main"> | |||
| <div class="type_main" v-if="!(isCheckedBy || uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == '')"> | |||
| <div class="link_div"> | |||
| <div class="fj_title">附件类型:</div> | |||
| <div class="fj_group"> | |||
| <el-radio-group v-model="uploadImg.uploadImgData.fileType"> | |||
| <el-radio v-for="item in uploadImg.fileTypeOptions" :key="item.dictValue" :value="item.dictValue" :label="item.dictValue">{{ item.dictLabel }}</el-radio> | |||
| </el-radio-group> | |||
| </div> | |||
| </div> | |||
| <div class="link_div"> | |||
| 只能上传jpg、png、gif、pdf、doc、docx、xlsx、xls、zip文件,且不超过30MB | |||
| </div> | |||
| </div> | |||
| <div class="updata_list" v-loading="uploadImg.attachmentLoading"> | |||
| <!-- 1 --> | |||
| <div class="flex_block" v-for="(item, index) in uploadImg.fileTypeOptions" :key="index"> | |||
| <div class="title">{{ item.dictLabel }}</div> | |||
| <div class="content"> | |||
| <div v-if="!uploadImg.dealWithFileList[item.dictValue]" class="not_data"> | |||
| 暂无附件 | |||
| </div> | |||
| <ul class="ul_wrap" v-else> | |||
| <li v-for="(val, len) in uploadImg.dealWithFileList[item.dictValue]" :key="len"> | |||
| <div class="icon_success" v-if="!(isCheckedBy || uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == '')"></div> | |||
| <div class="icon_delete" v-if="!(isCheckedBy || uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == '')"></div> | |||
| <div class="picture" @click="previewPreview(val,index,len)"> | |||
| <img :src="val.url? val.url: uploadImg.baseRoutingUrl + (val.thumUrl || val.fileUrl)" /> | |||
| </div> | |||
| <div class="picture_title">{{ val.name }}</div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="right_updata_main" v-if="!(isCheckedBy || uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == '')"> | |||
| <div class="updata_local"> | |||
| <el-upload ref="upload" :action="uploadImg.uploadImgUrl" | |||
| accept=".jpg,.png,.gif,.pdf,.doc,.docx,.xlsx,.xls,.zip" :on-success="handlePreview" | |||
| :data="uploadImg.uploadImgData" list-type="picture" :headers="uploadImg.uploadImgHeaders" | |||
| class="addAccessoryPop" :disabled="isCheckedBy || uploadImg.uploadImgData.id == null || uploadImg.uploadImgData.id == ''" | |||
| > | |||
| <el-button slot="trigger" size="small" type="primary">本地上传</el-button> | |||
| </el-upload> | |||
| </div> | |||
| <div class="qrCode_main" v-if="searchFormField.qrCode != ''"> | |||
| <div class="title">凭证二维码</div> | |||
| <div class="qrCode_img"> | |||
| <img :src="uploadImg.baseRoutingUrl + searchFormField.qrCode" /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <span slot="footer" class="dialog-footer"> | |||
| <el-button @click="closeHighShotMeter">关 闭</el-button> | |||
| </span> | |||
| </el-dialog> | |||
| <el-image append-to-body style="width: 100%;display: none;" v-for="(item,index) in fileListImg" :src="focusImgUrl" :ref="'preview'+index" :initial-index="initialIndex" :preview-src-list="item"></el-image> | |||
| </div> | |||
| @@ -140,12 +140,12 @@ | |||
| } | |||
| .pop_statistical_desc { | |||
| width: 600px; | |||
| width: 970px; | |||
| margin: 0; | |||
| left: 480px; | |||
| top: 180px; | |||
| padding-bottom: 1.04vw !important; | |||
| overflow: hidden; | |||
| .head_main { | |||
| .title { | |||
| @@ -180,3 +180,775 @@ | |||
| } | |||
| } | |||
| } | |||
| .main-content { | |||
| background: #fff url("white_makai.png") repeat; | |||
| color: #333333; | |||
| .main-center { | |||
| .voucher-header { | |||
| padding: 10px 20px; | |||
| height: 52px; | |||
| .right { | |||
| float: right; | |||
| } | |||
| .block { | |||
| float: left; | |||
| height: 32px; | |||
| .title { | |||
| float: left; | |||
| font-size: 14px; | |||
| line-height: 32px; | |||
| } | |||
| .voucherId { | |||
| width: 60px; | |||
| float: left; | |||
| margin: 0 8px 0 2px; | |||
| } | |||
| ::v-deep { | |||
| .voucherId .el-input__inner, | |||
| .voucherWord .el-input__inner, | |||
| .selectDate .el-input__inner, | |||
| .attachedNum .el-input__inner { | |||
| border: 0; | |||
| border-radius: 0; | |||
| background: none; | |||
| border-bottom: 1px solid #CACBCC; | |||
| } | |||
| } | |||
| .voucherWord { | |||
| width: 60px; | |||
| float: left; | |||
| margin-right: 8px; | |||
| } | |||
| .attachedNum { | |||
| width: 53px; | |||
| float: left; | |||
| margin: 0 6px 0 6px; | |||
| } | |||
| &.mr { | |||
| margin-right: 40px; | |||
| } | |||
| .selectDate { | |||
| width: 130px; | |||
| } | |||
| &.attachment, | |||
| &.note { | |||
| font-size: 14px; | |||
| line-height: 32px; | |||
| margin-left: 20px; | |||
| color: #3385ff; | |||
| cursor: pointer; | |||
| position: relative; | |||
| &.disabled { | |||
| color: #999; | |||
| } | |||
| .note-main { | |||
| position: absolute; | |||
| width: 240px; | |||
| color: #333; | |||
| line-height: 25px; | |||
| background: #fff; | |||
| right: 0; | |||
| top: 40px; | |||
| z-index: 9; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .voucher-body { | |||
| padding-bottom: 20px; | |||
| .list { | |||
| // width: 960px; | |||
| margin: 0 20px 0 20px; | |||
| line-height: 60px; | |||
| text-align: center; | |||
| padding: 0; | |||
| border-left: 1px solid #CACBCC; | |||
| border-top: 1px solid #CACBCC; | |||
| &.body { | |||
| border-top: 0 none; | |||
| li { | |||
| position: relative; | |||
| } | |||
| .borrower, | |||
| .theLender, | |||
| .abstract, | |||
| .serial, | |||
| .subjects { | |||
| height: 62px; | |||
| } | |||
| .borrower, | |||
| .theLender { | |||
| background: url("1410MoneyUint.png") repeat-y; | |||
| } | |||
| .computeModuleBg{ | |||
| width: 100vw; | |||
| height: 100vh; | |||
| position: fixed; | |||
| top: 0; | |||
| left: 0; | |||
| z-index: 2001; | |||
| } | |||
| .displayText { | |||
| font-size: 13px; | |||
| text-align: left; | |||
| padding: 0 5px; | |||
| vertical-align: top; | |||
| line-height: 20px; | |||
| height: 62px; | |||
| overflow: hidden; | |||
| &.abstractText { | |||
| display: flex; | |||
| flex-direction: column; | |||
| justify-content: space-around; | |||
| } | |||
| &.subjectsText { | |||
| padding-top: 5px; | |||
| .subjectsType { | |||
| margin: 0; | |||
| padding: 0; | |||
| line-height: 51px; | |||
| } | |||
| .subjectsBalance { | |||
| position: absolute; | |||
| bottom: 5px; | |||
| right: 5px; | |||
| margin: 0; | |||
| padding: 0; | |||
| font-size: 12px; | |||
| font-weight: normal; | |||
| color: #999; | |||
| .red { | |||
| color: red; | |||
| } | |||
| } | |||
| .subjectsBalanceOrigin { | |||
| position: absolute; | |||
| top: 5px; | |||
| right: 5px; | |||
| margin: 0; | |||
| padding: 0; | |||
| font-size: 12px; | |||
| font-weight: normal; | |||
| color: #999; | |||
| .red { | |||
| color: red; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .abstract:hover { | |||
| .abstractMore { | |||
| display: block; | |||
| } | |||
| } | |||
| .subjects:hover { | |||
| .subjectsMore{display: block;} | |||
| .pasteMore{display: block;} | |||
| .isCopyShow{ | |||
| display: block; | |||
| } | |||
| } | |||
| .subjects { | |||
| ::v-deep { | |||
| .el-input__suffix-inner { | |||
| display: none; | |||
| } | |||
| } | |||
| .quantity_main{ | |||
| position: absolute; | |||
| height: 16px; | |||
| width: 70%; | |||
| line-height: 16px; | |||
| font-size: 12px; | |||
| z-index: 99; | |||
| left: 8px; | |||
| bottom: 6px; | |||
| max-width: 240px; | |||
| display: flex; | |||
| .line-quan{ | |||
| flex: 1; | |||
| display: flex; | |||
| .title{ | |||
| width: 36px; | |||
| } | |||
| .ipt{ | |||
| width: 62px; | |||
| height: 16px; | |||
| border: 0 none; | |||
| background: transparent; | |||
| border-bottom:1px solid #a7d9f5; | |||
| // border-radius: 3px; | |||
| outline:none; | |||
| padding:0 3px; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .abstractMore, | |||
| .subjectsMore, | |||
| .contractMore, | |||
| .copyMore, | |||
| .pasteMore { | |||
| width: 20px; | |||
| height: 20px; | |||
| background: url("addVoucherTem_ico.png") | |||
| no-repeat; | |||
| background-size: 100% auto; | |||
| display: none; | |||
| cursor: pointer; | |||
| &.show { | |||
| display: block; | |||
| } | |||
| } | |||
| .abstractMore{ | |||
| position: absolute; | |||
| right: 10px; | |||
| top: 20px; | |||
| z-index: 9999; | |||
| } | |||
| .iconMore_block{ | |||
| position: absolute; | |||
| right: 10px; | |||
| top: 20px; | |||
| z-index: 9999; | |||
| width: 85px; | |||
| display: flex; | |||
| justify-content:flex-end; | |||
| .subjectsMore { | |||
| background: url("addVoucherTem_ico2.png") | |||
| no-repeat; | |||
| background-size: 100% auto; | |||
| } | |||
| .contractMore{ | |||
| background: url("addVoucherTem_ico3.png") | |||
| no-repeat; | |||
| background-size: 100% auto; | |||
| display: block; | |||
| // margin-left: 10px; | |||
| } | |||
| .copyMore{ | |||
| background: url("addVoucherTem_ico4.png") | |||
| no-repeat; | |||
| background-size: 100% auto ; | |||
| // display: block; | |||
| // margin-left: 10px; | |||
| } | |||
| .pasteMore{ | |||
| background: url("addVoucherTem_ico5.png") | |||
| no-repeat; | |||
| background-size: 100% auto ; | |||
| // display: block; | |||
| // margin-left: 10px; | |||
| } | |||
| } | |||
| .borrowerText, | |||
| .theLenderText { | |||
| font-weight: bold; | |||
| font-size: 14px; | |||
| letter-spacing: 11px; | |||
| overflow: hidden; | |||
| text-align: right; | |||
| margin-right: -5px; | |||
| height: 62px; | |||
| font-family: "tahoma"; | |||
| .theLenderRed { | |||
| color: red; | |||
| } | |||
| } | |||
| .computeModule{ | |||
| position: absolute; | |||
| height:62px; | |||
| border:1px solid #CACBCC; | |||
| top: -62px; | |||
| z-index: 9999; | |||
| background: #fff; | |||
| right: 0; | |||
| .el-input{ | |||
| height: 62px; | |||
| ::v-deep{ | |||
| .el-input__inner{ | |||
| height: 60px !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| ::v-deep { | |||
| .abstract-select { | |||
| width: 100%; | |||
| } | |||
| .abstract-select .el-input__inner { | |||
| height: 60px; | |||
| width: 100%; | |||
| border-radius: 0; | |||
| } | |||
| .abstract-select .name { | |||
| text-align: left; | |||
| } | |||
| .subjects-select { | |||
| width: 100%; | |||
| position: relative; | |||
| z-index: 100; | |||
| } | |||
| .subjects-select .el-input__inner { | |||
| height: 60px; | |||
| border-radius: 0; | |||
| width: 100%; | |||
| } | |||
| .borrower-input .el-input__inner { | |||
| height: 60px; | |||
| border-radius: 0; | |||
| } | |||
| } | |||
| } | |||
| &.footer { | |||
| border-top: 0 none; | |||
| .combined { | |||
| width: calc(100% - 447px); | |||
| font-weight: bold; | |||
| margin-left: 5px; | |||
| text-align: left; | |||
| font-size: 13px; | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| } | |||
| .borrower, | |||
| .theLender { | |||
| background: url("1410MoneyUint.png") repeat-y; | |||
| height: 62px; | |||
| } | |||
| .borrower .borrowerText, | |||
| .theLender .theLenderText { | |||
| font-weight: bold; | |||
| font-size: 14px; | |||
| letter-spacing: 11px; | |||
| overflow: hidden; | |||
| text-align: right; | |||
| margin-right: -5px; | |||
| font-family: "tahoma"; | |||
| .borrowerText { | |||
| color: red; | |||
| } | |||
| } | |||
| } | |||
| &.header li { | |||
| font-size: 12px; | |||
| font-weight: bold; | |||
| background: rgba(35, 134, 238, 0.04); | |||
| .moneyTit { | |||
| height: 30px; | |||
| font-size: 14px; | |||
| line-height: 30px; | |||
| border-bottom: 1px solid #CACBCC; | |||
| } | |||
| .moneyUint { | |||
| height: 31px; | |||
| line-height: 30px; | |||
| background: url("1410MoneyUint.png") repeat-y; | |||
| span { | |||
| float: left; | |||
| display: inline; | |||
| width: 19px; | |||
| height: 100%; | |||
| margin-right: 1px; | |||
| text-align: center; | |||
| font-size: 12px; | |||
| } | |||
| } | |||
| } | |||
| &.body li { | |||
| &:hover { | |||
| background: rgba(35, 134, 238, 0.08); | |||
| .serial { | |||
| //.seq { | |||
| // display: none; | |||
| //} | |||
| //.operateIcon { | |||
| // display: block; | |||
| //} | |||
| } | |||
| } | |||
| } | |||
| li { | |||
| list-style: none; | |||
| height: 62px; | |||
| border-bottom: 1px solid #CACBCC; | |||
| &.abstract-option { | |||
| height: 34px; | |||
| border-bottom: 0 none; | |||
| } | |||
| } | |||
| .abstract { | |||
| width: calc((100% - 542px) * 0.4); | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| height: 62px; | |||
| position: relative; | |||
| font-size: 14px; | |||
| } | |||
| .serial { | |||
| width: 100px; | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| height: 62px; | |||
| .seq { | |||
| font-size: 12px; | |||
| } | |||
| .operateIcon { | |||
| display: none; | |||
| text-align: center; | |||
| line-height: 62px; | |||
| padding-top: 3px; | |||
| .add-btn, | |||
| .remove-btn { | |||
| cursor: pointer; | |||
| width: 17px; | |||
| height: 16px; | |||
| display: inline-block; | |||
| } | |||
| .add-btn { | |||
| margin-right: 8px; | |||
| background: url("3020AddVoucherLine.png") | |||
| center center no-repeat; | |||
| } | |||
| .remove-btn { | |||
| background: url("3030DeleteVoucherLine.png") | |||
| center center no-repeat; | |||
| } | |||
| } | |||
| } | |||
| .subjects { | |||
| width: calc((100% - 542px) * 0.6); | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| height: 62px; | |||
| position: relative; | |||
| font-size: 14px; | |||
| } | |||
| .borrower, | |||
| .theLender { | |||
| width: 221px; | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| position: relative; | |||
| } | |||
| } | |||
| } | |||
| .assist-accounting { | |||
| padding: 0 20px 20px; | |||
| .assist-title { | |||
| font-size: 14px; | |||
| margin-bottom: 14px; | |||
| } | |||
| .assist-main { | |||
| &.voucher-body { | |||
| li { | |||
| height: 42px; | |||
| line-height: 40px; | |||
| position: relative; | |||
| border-right: 1px solid #CACBCC; | |||
| &:hover { | |||
| .operateIcon { | |||
| display: block; | |||
| } | |||
| } | |||
| } | |||
| .list { | |||
| margin: 0; | |||
| line-height: 40px; | |||
| .companyUnit, | |||
| .personal, | |||
| .numberOf, | |||
| .projects { | |||
| float: left; | |||
| border-right: 1px solid #CACBCC; | |||
| height: 40px; | |||
| width: 129px; | |||
| .andFrom-select { | |||
| width: 100%; | |||
| height: 40px; | |||
| } | |||
| } | |||
| .borrower, | |||
| .theLender { | |||
| height: 40px; | |||
| } | |||
| .companyUnit { | |||
| width: 130px; | |||
| } | |||
| .operateIcon { | |||
| display: none; | |||
| text-align: center; | |||
| line-height: 48px; | |||
| position: absolute; | |||
| right: 8px; | |||
| top: 0; | |||
| z-index: 99; | |||
| .add-btn, | |||
| .remove-btn { | |||
| cursor: pointer; | |||
| width: 17px; | |||
| height: 16px; | |||
| display: inline-block; | |||
| } | |||
| .add-btn { | |||
| margin-right: 8px; | |||
| background: url("3020AddVoucherLine.png") | |||
| center center no-repeat; | |||
| } | |||
| .remove-btn { | |||
| background: url("3030DeleteVoucherLine.png") | |||
| center center no-repeat; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .voucher-footer { | |||
| padding: 0 20px 20px; | |||
| .prepared-main{ | |||
| font-size: 14px; | |||
| line-height: 20px; | |||
| height: 20px; | |||
| margin-bottom: 5px; | |||
| .prepared { | |||
| float: left; | |||
| margin: 0; | |||
| display: inline-block; | |||
| width: 33%; | |||
| } | |||
| .accountedby { | |||
| float: left; | |||
| margin: 0; | |||
| display: inline-block; | |||
| width: 34%; | |||
| text-align: center; | |||
| .accountedby-content { | |||
| text-align: left; | |||
| display: inline-block; | |||
| min-width: 100px; | |||
| } | |||
| } | |||
| .audit { | |||
| float: right; | |||
| margin: 0; | |||
| display: inline-block; | |||
| width: 33%; | |||
| text-align: right; | |||
| .audit-placeholder { | |||
| display: inline-block; | |||
| min-width: 30px; | |||
| } | |||
| } | |||
| } | |||
| .approval-main{ | |||
| font-size: 14px; | |||
| line-height: 20px; | |||
| display: flex; | |||
| justify-content: space-between; | |||
| .approver_wrap{display: flex; justify-content:flex-start;} | |||
| .approver_icon{ | |||
| width: 20px; | |||
| height: 20px; | |||
| background: url('voucher_scanning.png') no-repeat; | |||
| background-size: 100% 100%; | |||
| margin-left: 12px; | |||
| cursor: pointer; | |||
| } | |||
| .approver_time{ | |||
| flex:1; | |||
| text-align: right; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .voucher-title { | |||
| padding: 20px 0 0; | |||
| text-align: center; | |||
| color: #333; | |||
| font-size: 19px; | |||
| letter-spacing: 3.5px; | |||
| line-height: 25px; | |||
| font-weight: bold; | |||
| } | |||
| .el-dialog-div { | |||
| height: 60vh; | |||
| overflow: auto; | |||
| } | |||
| .upload_attachments { | |||
| display: flex; | |||
| .left_updata_main { | |||
| flex: 1; | |||
| .type_main { | |||
| display: flex; | |||
| flex-flow: column; | |||
| height: 70px; | |||
| .link_div { | |||
| flex: 1; | |||
| display: flex; | |||
| font-size: 13px; | |||
| align-items: center; | |||
| .fj_title { | |||
| width: 70px; | |||
| font-size: 14px; | |||
| } | |||
| .fj_group { | |||
| flex: 1; | |||
| ::v-deep { | |||
| .el-radio { | |||
| margin-right: 14px; | |||
| } | |||
| .el-radio__inner { | |||
| width: 13px; | |||
| height: 13px; | |||
| } | |||
| .el-radio__label { | |||
| font-size: 13px; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .updata_list { | |||
| .flex_block { | |||
| border: 1px dashed #d7d7d7; | |||
| padding-top: 10px; | |||
| border-radius: 5px; | |||
| display: flex; | |||
| margin-bottom: 10px; | |||
| &:nth-child(4) { | |||
| margin-bottom: 0; | |||
| } | |||
| .title { | |||
| width: 40px; | |||
| display: flex; | |||
| justify-content: center; /* 相对父元素水平居中 */ | |||
| align-items: center; /* 子元素相对父元素垂直居中 */ | |||
| text-align: center; | |||
| padding: 0 10px 10px; | |||
| color: #218ff1; | |||
| } | |||
| .content { | |||
| flex: 1; | |||
| .ul_wrap { | |||
| padding: 0; | |||
| margin: 0; | |||
| list-style: none; | |||
| display: flex; | |||
| // justify-content: space-between; | |||
| flex-wrap: wrap; | |||
| li { | |||
| width: 60px; | |||
| height: 80px; | |||
| margin-right: 12px; | |||
| margin-bottom: 10px; | |||
| position: relative; | |||
| cursor: pointer; | |||
| .icon_success, | |||
| .icon_delete { | |||
| width: 13px; | |||
| height: 13px; | |||
| background: url("uploaded_component_success.png") | |||
| no-repeat; | |||
| background-size: 100% 100%; | |||
| position: absolute; | |||
| right: -5px; | |||
| top: -5px; | |||
| } | |||
| .icon_delete { | |||
| background: url("uploaded_component_delete.png") | |||
| no-repeat; | |||
| background-size: 100% 100%; | |||
| display: none; | |||
| } | |||
| &:hover { | |||
| .icon_delete { | |||
| display: block; | |||
| } | |||
| } | |||
| .picture { | |||
| width: 60px; | |||
| height: 60px; | |||
| img { | |||
| width: 60px; | |||
| height: 60px; | |||
| } | |||
| } | |||
| .picture_title { | |||
| height: 30px; | |||
| line-height: 25px; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| text-align: center; | |||
| font-size: 12px; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .right_updata_main { | |||
| width: 285px; | |||
| padding-left: 25px; | |||
| .updata_local { | |||
| height: 70px; | |||
| display: flex; | |||
| justify-content: center; /* 相对父元素水平居中 */ | |||
| align-items: center; /* 子元素相对父元素垂直居中 */ | |||
| } | |||
| .high_shot { | |||
| border: 1px dashed #d7d7d7; | |||
| border-radius: 5px; | |||
| padding: 0 30px; | |||
| .title { | |||
| // font-size: 14px; | |||
| // height: 30px; | |||
| // line-height: 30px; | |||
| // margin-top: 5px; | |||
| // margin-bottom: 2px; | |||
| text-align: center; | |||
| padding: 10px 0; | |||
| } | |||
| } | |||
| .qrCode_main { | |||
| margin-top: 26px; | |||
| .title { | |||
| line-height: 30px; | |||
| text-align: center; | |||
| font-size: 14px; | |||
| color: #1e1e1e; | |||
| margin-bottom: 8px; | |||
| } | |||
| .qrCode_img { | |||
| width: 75px; | |||
| height: 75px; | |||
| margin: 0 auto; | |||
| img { | |||
| width: 75px; | |||
| height: 75px; | |||
| } | |||
| } | |||
| } | |||
| // <div class="qrCode_main"> | |||
| // <div class="title">高拍仪上传</div> | |||
| // <div class="qrCode_img"></div> | |||
| // </div> | |||
| } | |||
| } | |||
| @@ -41,12 +41,8 @@ | |||
| <p>{{data.assetType}}</p> | |||
| </div> | |||
| <div> | |||
| <p>原值</p> | |||
| <p>{{data.originalValue}}</p> | |||
| </div> | |||
| <div> | |||
| <p>天数</p> | |||
| <p>{{data.days}}</p> | |||
| <p>经营属性</p> | |||
| <p>{{data.operationType}}</p> | |||
| </div> | |||
| <div> | |||
| <p>增加方式</p> | |||
| @@ -60,6 +56,27 @@ | |||
| <p>使用情况</p> | |||
| <p>{{data.useType}}</p> | |||
| </div> | |||
| <div> | |||
| <p>资产状态</p> | |||
| <p>{{data.assetStatus}}</p> | |||
| </div> | |||
| <div> | |||
| <p>扶贫资产</p> | |||
| <p>{{data.isFormAsset}}</p> | |||
| </div> | |||
| <div> | |||
| <p>管理人</p> | |||
| <p>{{data.manager}}</p> | |||
| </div> | |||
| <div> | |||
| <p>履约情况</p> | |||
| <p>{{data.agreeType}}</p> | |||
| </div> | |||
| <div> | |||
| <p>存在权属纠纷</p> | |||
| <p>{{data.dispute}}</p> | |||
| </div> | |||
| <div> | |||
| <p>数量/建筑面积</p> | |||
| <p>{{data.quantity}}</p> | |||
| @@ -69,13 +86,29 @@ | |||
| <p>{{data.unit}}</p> | |||
| </div> | |||
| <div> | |||
| <p>坐落位置</p> | |||
| <p>{{data.location}}</p> | |||
| <p>原值</p> | |||
| <p>{{data.originalValue}}</p> | |||
| </div> | |||
| <div> | |||
| <p>残值率 N%</p> | |||
| <p>{{data.residualsRate}}</p> | |||
| </div> | |||
| <div> | |||
| <p>折旧方式</p> | |||
| <p>{{data.depreciationType}}</p> | |||
| </div> | |||
| <div> | |||
| <p>累计折旧</p> | |||
| <p>{{data.depreciationValue}}</p> | |||
| </div> | |||
| <div> | |||
| <p>备注</p> | |||
| <p>{{data.remark}}</p> | |||
| </div> | |||
| <div> | |||
| <p>附件</p> | |||
| <p>{{data.remark}}</p> | |||
| </div> | |||
| </div> | |||
| <div class="echarts_main scrollbar" v-if="type == '4' || type == '5' || type == '6'"> | |||
| <div> | |||
| @@ -18,9 +18,9 @@ export default [ | |||
| value: '0' | |||
| }, | |||
| { | |||
| name: '待借款(万元)', | |||
| name: '待结款(万元)', | |||
| icon: require('./2.png'), | |||
| value: '0' | |||
| } | |||
| ] | |||
| ] | |||
| ] | |||
| @@ -1,4 +1,4 @@ | |||
| <Pannel title="资产负债分析" height="232"> | |||
| <Pannel title="资源负债分析" height="232"> | |||
| <table> | |||
| <tr v-for="line in data"> | |||
| <td v-for="item in line"> | |||
| @@ -6,4 +6,4 @@ | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| </Pannel> | |||
| </Pannel> | |||
| @@ -231,6 +231,22 @@ export default { | |||
| ], | |||
| }; | |||
| }, | |||
| watch: { | |||
| 'queryParams.deptId': { | |||
| handler: function () { | |||
| this.commitDept(this.queryParams.deptId); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptLength: { | |||
| handler: function () { | |||
| //console.log(this.deptLength); | |||
| this.commitDeptLength(this.deptLength); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| computed: { | |||
| }, | |||
| created () { | |||
| @@ -269,8 +285,17 @@ export default { | |||
| }) | |||
| }, | |||
| methods: { | |||
| commitDept (deptId) { | |||
| this.$store.commit('SET_DEPTID', deptId); | |||
| }, | |||
| commitDeptLength (length) { | |||
| this.$store.commit('SET_DEPTIDLENGTH', length); | |||
| }, | |||
| commitYear (year) { | |||
| this.$store.commit('SET_YEAR', year); | |||
| }, | |||
| openImage (url) { | |||
| console.log(url) | |||
| //console.log(url) | |||
| this.dialogImageUrl = url; | |||
| this.dialogVisible = true; | |||
| }, | |||
| @@ -394,7 +419,7 @@ export default { | |||
| // // 获取资源列表 | |||
| this.getResourceList(deptId); | |||
| let dept2 = this.addrOptions[0]; | |||
| //console.log(this.addrOptions, 'this.addrOptions'); | |||
| ////console.log(this.addrOptions, 'this.addrOptions'); | |||
| if (dept2.deptLevel === '5') { | |||
| // 登录身份为市级领导 | |||
| this.userRole = 'cityLeader'; | |||
| @@ -510,7 +535,7 @@ export default { | |||
| }, | |||
| // 创建矢量数据源 | |||
| addDeptLayer (nextDeptSet, locationIcon) { | |||
| //console.log('nextDeptSet', nextDeptSet); | |||
| ////console.log('nextDeptSet', nextDeptSet); | |||
| let features = []; | |||
| nextDeptSet.forEach(item => { | |||
| let fs = gis.getFeature(item, this.yellowIcon) | |||
| @@ -534,7 +559,7 @@ export default { | |||
| if (item.theGeom != null && item.theGeom !== '') { | |||
| const { useType } = item | |||
| let color = this.LegendData[useType - 1 + ''] | |||
| console.log(color) | |||
| //console.log(color) | |||
| if (color){ | |||
| let fs = gis.getFeature3(item, color.iconStyle.background, color.iconStyle.borderColor) | |||
| features.push(fs); | |||
| @@ -404,16 +404,16 @@ export default { | |||
| let urls = ""; | |||
| let type = ""; | |||
| if (ext == "xlsx" || ext == "xls") { | |||
| urls = require("@/assets/images/icon_excel.jpg"); | |||
| urls = require("./icon_excel.jpg"); | |||
| type = 'excel'; | |||
| } else if (ext == "doc" || ext == "docx") { | |||
| urls = require("@/assets/images/icon_word.jpg"); | |||
| urls = require("./icon_word.jpg"); | |||
| type = 'word'; | |||
| } else if (ext == "pdf") { | |||
| urls = require("@/assets/images/icon_pdf.jpg"); | |||
| urls = require("./icon_pdf.jpg"); | |||
| type = 'pdf'; | |||
| } else if (ext == "zip") { | |||
| urls = require("@/assets/images/icon_zip.jpg"); | |||
| urls = require("./icon_zip.jpg"); | |||
| type = 'zip'; | |||
| } else { | |||
| urls = '/api' + UattachmentList[i].fileUrl; | |||