公共服务跳转,及结算审核合并
This commit is contained in:
parent
05598cd181
commit
1bf36a3555
|
|
@ -8,3 +8,5 @@ ENV = 'production'
|
||||||
# VUE_APP_BASE_API = '/prod-api'
|
# VUE_APP_BASE_API = '/prod-api'
|
||||||
# 智能机具管理系统/宏源环境
|
# 智能机具管理系统/宏源环境
|
||||||
VUE_APP_BASE_API = '/iws/jiju-api'
|
VUE_APP_BASE_API = '/iws/jiju-api'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,16 @@ import request from '@/utils/request'
|
||||||
|
|
||||||
// 登录方法 - 调试使用 - 产线环境需注释
|
// 登录方法 - 调试使用 - 产线环境需注释
|
||||||
export function login(data) {
|
export function login(data) {
|
||||||
return false
|
// return false
|
||||||
// return request({
|
return request({
|
||||||
// url: '/auth/login',
|
url: '/auth/login',
|
||||||
// headers: {
|
headers: {
|
||||||
// isToken: false,
|
isToken: false,
|
||||||
// repeatSubmit: false
|
repeatSubmit: false
|
||||||
// },
|
},
|
||||||
// method: 'post',
|
method: 'post',
|
||||||
// data: data
|
data: data
|
||||||
// })
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isLogin(data) {
|
export function isLogin(data) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
import * as CryptoJS from 'crypto-js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Object} word解密
|
||||||
|
*/
|
||||||
|
export function bnsCloudDecrypt(word) {
|
||||||
|
var key = CryptoJS.enc.Utf8.parse('bonus@cloud@2025')
|
||||||
|
var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 })
|
||||||
|
return CryptoJS.enc.Utf8.stringify(decrypt).toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Object} word加密
|
||||||
|
*/
|
||||||
|
function bnsCloudEncrypt(word) {
|
||||||
|
var key = CryptoJS.enc.Utf8.parse('bonus@cloud@2025')
|
||||||
|
var srcs = CryptoJS.enc.Utf8.parse(word)
|
||||||
|
var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 })
|
||||||
|
return encrypted.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
const TokenKey = 'Admin-Token'
|
const TokenKey = 'Admin-jVToken'
|
||||||
|
|
||||||
const ExpiresInKey = 'Admin-Expires-In'
|
const ExpiresInKey = 'Admin-Expires-In-jV'
|
||||||
|
|
||||||
export function getToken() {
|
export function getToken() {
|
||||||
return Cookies.get(TokenKey)
|
return Cookies.get(TokenKey)
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,7 @@ import dingding from '@/assets/images/dingding.svg'
|
||||||
import wx from '@/assets/images/wx.svg'
|
import wx from '@/assets/images/wx.svg'
|
||||||
import qq from '@/assets/images/QQ.svg'
|
import qq from '@/assets/images/QQ.svg'
|
||||||
import { setToken, setExpiresIn } from '@/utils/auth'
|
import { setToken, setExpiresIn } from '@/utils/auth'
|
||||||
|
import { bnsCloudDecrypt } from '@/utils/aes'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Login',
|
name: 'Login',
|
||||||
|
|
@ -330,6 +331,35 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.isIws = false
|
this.isIws = false
|
||||||
this.getCookie()
|
this.getCookie()
|
||||||
|
|
||||||
|
const origin = window.location.href
|
||||||
|
if (origin.indexOf('params') !== -1) {
|
||||||
|
//获取浏览器路径
|
||||||
|
const url = new URL(origin)
|
||||||
|
const urlParam = new URLSearchParams(url.search)
|
||||||
|
console.log(url)
|
||||||
|
console.log(urlParam)
|
||||||
|
//解析路径参数
|
||||||
|
const params = urlParam.get('params')
|
||||||
|
console.log(params)
|
||||||
|
if (params) {
|
||||||
|
//对参数进行解密
|
||||||
|
const jiemi = bnsCloudDecrypt(params)
|
||||||
|
//解密参数继续解析
|
||||||
|
const logingParam = new URLSearchParams(jiemi)
|
||||||
|
//获取账号密码
|
||||||
|
const username = logingParam.get('username')
|
||||||
|
const password = logingParam.get('password')
|
||||||
|
if (username && password) {
|
||||||
|
this.loginForm.username = username
|
||||||
|
this.loginForm.password = password
|
||||||
|
//自己系统登录的方法 有验证码的 需要去添加一个无验证码登录的方法
|
||||||
|
this.authLogin()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('无自动登录参数')
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -343,13 +373,58 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getCookie() {
|
getCookie() {
|
||||||
const username = Cookies.get('username')
|
const username = Cookies.get('jVusername')
|
||||||
const password = Cookies.get('password')
|
const password = Cookies.get('jVpassword')
|
||||||
const rememberMe = Cookies.get('rememberMe')
|
const rememberMe = Cookies.get('jVrememberMe')
|
||||||
this.loginForm.username = username || ''
|
this.loginForm.username = username || ''
|
||||||
this.loginForm.password = password ? decrypt(password) : ''
|
this.loginForm.password = password ? decrypt(password) : ''
|
||||||
this.loginForm.rememberMe = rememberMe === 'true'
|
this.loginForm.rememberMe = rememberMe === 'true'
|
||||||
},
|
},
|
||||||
|
authLogin(){
|
||||||
|
this.loading = true
|
||||||
|
if (this.loginForm.rememberMe) {
|
||||||
|
Cookies.set('jVusername', this.loginForm.username, { expires: 30 })
|
||||||
|
Cookies.set('jVpassword', encrypt(this.loginForm.password), {
|
||||||
|
expires: 30
|
||||||
|
})
|
||||||
|
Cookies.set('jVrememberMe', this.loginForm.rememberMe, {
|
||||||
|
expires: 30
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
Cookies.remove('jVusername')
|
||||||
|
Cookies.remove('jVpassword')
|
||||||
|
Cookies.remove('jVrememberMe')
|
||||||
|
}
|
||||||
|
this.loginForm.loginMethod = this.loginMethod
|
||||||
|
this.$store
|
||||||
|
.dispatch('Login', this.loginForm)
|
||||||
|
.then(res => {
|
||||||
|
console.log(res)
|
||||||
|
if (res.code === 200) {
|
||||||
|
if (res.isLogin) {
|
||||||
|
this.$modal
|
||||||
|
.confirm('账号已在其他地方登录是否继续登录!!!!')
|
||||||
|
.then(function () {
|
||||||
|
// return this.$router.push({ path: this.redirect || '/' })
|
||||||
|
return this.$router.push({ path: '/' })
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// this.$router.push({ path: this.redirect || '/' })
|
||||||
|
this.$router.push({ path: '/' })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.loading = false
|
||||||
|
if (this.captchaEnabled) this.getCode()
|
||||||
|
})
|
||||||
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
|
||||||
|
|
@ -69,19 +69,20 @@
|
||||||
<el-tag v-if="scope.row.settlementType == null || scope.row.settlementType === 0" effect="plain">
|
<el-tag v-if="scope.row.settlementType == null || scope.row.settlementType === 0" effect="plain">
|
||||||
总费用
|
总费用
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
<el-tag type="danger" v-if="scope.row.settlementType === 3" effect="plain">全部</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="审批人" align="center" prop="auditor" :show-overflow-tooltip="true" />
|
<el-table-column label="审批人" align="center" prop="auditor" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="审批时间" align="center" prop="auditTime" width="100" />
|
<el-table-column label="审批时间" align="center" prop="auditTime" width="100" />
|
||||||
<el-table-column label="结算状态" align="center" prop="sltStatus" :show-overflow-tooltip="true">
|
<el-table-column label="结算状态" align="center" prop="sltStatus" :show-overflow-tooltip="true" width="165">
|
||||||
<!-- <template slot-scope="scope">-->
|
<!-- <template slot-scope="scope">-->
|
||||||
<!-- <dict-tag :options="dict.type.cost_status" :value="scope.row.sltStatus"/>-->
|
<!-- <dict-tag :options="dict.type.cost_status" :value="scope.row.sltStatus"/>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.sltStatus == '1'">待审核</el-tag>
|
<el-tag v-if="scope.row.sltStatus == '1'">{{ scope.row.sltAuditor || '待审核' }}</el-tag>
|
||||||
<el-tag type="success" v-if="scope.row.sltStatus == '2'">审核通过</el-tag>
|
<el-tag type="success" v-else-if="scope.row.sltStatus == '2'">审核通过</el-tag>
|
||||||
<el-tag type="danger" v-if="scope.row.sltStatus == '3'">审核驳回</el-tag>
|
<el-tag type="danger" v-else-if="scope.row.sltStatus == '3'">审核驳回</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
|
||||||
|
|
@ -96,7 +97,7 @@
|
||||||
<!-- <el-button size="mini" type="danger" icon="el-icon-delete"
|
<!-- <el-button size="mini" type="danger" icon="el-icon-delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>撤销申请</el-button> -->
|
>撤销申请</el-button> -->
|
||||||
<el-button type="primary" plain size="mini" @click="openPrintDialog(scope.row)">协议书</el-button>
|
<el-button type="primary" plain size="mini" @click="openPrintDialog(scope.row)" v-if="scope.row.sltStatus == '2'">协议书</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -127,7 +128,7 @@
|
||||||
<div style="height: 600px; overflow-y: scroll">
|
<div style="height: 600px; overflow-y: scroll">
|
||||||
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
|
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
|
||||||
<div style="text-align: center; font-weight: 600; font-size: 16px">
|
<div style="text-align: center; font-weight: 600; font-size: 16px">
|
||||||
{{ dialogTitle || '机具设备' }}有偿使用费结算协议书
|
{{ dialogTitle }}有偿使用费结算协议书
|
||||||
</div>
|
</div>
|
||||||
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
|
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
|
||||||
<div class="item" style="width: 65%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px"></div>
|
<div class="item" style="width: 65%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px"></div>
|
||||||
|
|
@ -148,35 +149,64 @@
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 100%">结算项目及金额(元)</div>
|
<div class="columnLabel" style="width: 100%">结算项目及金额(元)</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tabelColumn">
|
||||||
|
<div class="columnLabel" style="width: 60%">项目</div>
|
||||||
|
<div class="columnLabel" style="width: 20%; border-left: 1px solid #9c9c9c">施工机具</div>
|
||||||
|
<div class="columnLabel" style="width: 20%; border-left: 1px solid #9c9c9c">安全工器具</div>
|
||||||
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 60%">一、施工机具有偿使用费:</div>
|
<div class="columnLabel" style="width: 60%">一、施工机具有偿使用费:</div>
|
||||||
<div class="columnContent" style="width: 40%">
|
<div class="columnContent" style="width: 20%">
|
||||||
¥ {{ Number(agreementContent.leaseCost).toFixed(2) }}
|
¥ {{ Number(agreementContent.leaseCost).toFixed(2) }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.aqLeaseCost).toFixed(2) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 60%">二、施工机具维修费:</div>
|
<div class="columnLabel" style="width: 60%">二、施工机具维修费:</div>
|
||||||
<div class="columnContent" style="width: 40%">
|
<div class="columnContent" style="width: 20%">
|
||||||
¥ {{ Number(agreementContent.repairCost).toFixed(2) }}
|
¥ {{ Number(agreementContent.repairCost).toFixed(2) }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.aqRepairCost).toFixed(2) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 60%">三、施工机具丢失费:</div>
|
<div class="columnLabel" style="width: 60%">三、施工机具丢失费:</div>
|
||||||
<div class="columnContent" style="width: 40%">
|
<div class="columnContent" style="width: 20%">
|
||||||
¥ {{ Number(agreementContent.loseCost).toFixed(2) }}
|
¥ {{ Number(agreementContent.loseCost).toFixed(2) }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.aqLoseCost).toFixed(2) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 60%">四、施工机具损坏赔偿费:</div>
|
<div class="columnLabel" style="width: 60%">四、施工机具损坏赔偿费:</div>
|
||||||
<div class="columnContent" style="width: 40%">
|
<div class="columnContent" style="width: 20%">
|
||||||
¥ {{ Number(agreementContent.scrapCost).toFixed(2) }}
|
¥ {{ Number(agreementContent.scrapCost).toFixed(2) }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.aqScrapCost).toFixed(2) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 60%">五、施工机具租赁减免费:</div>
|
<div class="columnLabel" style="width: 60%">五、施工机具租赁减免费:</div>
|
||||||
<div class="columnContent" style="width: 40%">
|
<div class="columnContent" style="width: 20%">
|
||||||
¥ {{ Number(agreementContent.reductionCost).toFixed(2) }}
|
¥ {{ Number(agreementContent.reductionCost).toFixed(2) }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.aqReductionCost).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tabelColumn">
|
||||||
|
<div class="columnLabel" style="width: 60%">小计:</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.addMoneySafety).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
<div class="columnContent" style="width: 20%">
|
||||||
|
¥ {{ Number(agreementContent.addMoneyProject).toFixed(2) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabelColumn">
|
<div class="tabelColumn">
|
||||||
<div class="columnLabel" style="width: 20%">费用合计金额(大写):</div>
|
<div class="columnLabel" style="width: 20%">费用合计金额(大写):</div>
|
||||||
|
|
@ -203,19 +233,23 @@
|
||||||
|
|
||||||
<span>部门负责人:</span>
|
<span>部门负责人:</span>
|
||||||
|
|
||||||
<img v-if="agreementContent.auditorSignUrl" :src="initImgPath(agreementContent.auditorSignUrl)"
|
<div style="display: flex;flex-direction: column">
|
||||||
style="width: 40px; height: 90px;margin-left: 20px; max-width: 100%;"
|
<div v-for="(item, index) in agreementContent.signUrlList" :key="index" style="margin-top: -20px;">
|
||||||
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt="" />
|
<img v-if="item.auditorSignUrl" :src="initImgPath(item.auditorSignUrl)"
|
||||||
|
style="width: 40px; max-height: 90px;margin-left: 20px; max-width: 100%;"
|
||||||
|
:style="{ transform: item.signType == 0 ? 'rotate(-90deg)' : '' }" alt="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="item-new" style="width: 33%">
|
<div class="item-new" style="width: 33%">
|
||||||
|
|
||||||
<span>承租负责人:</span>
|
<span>承租负责人:</span>
|
||||||
<img :src="agreementContent.managerSignUrl"
|
<img :src="agreementContent.signUrlList[0].managerSignUrl"
|
||||||
style="width: 40px; height: 90px; max-width: 100%;margin-left: 20px;"
|
style="width: 40px; height: 90px; max-width: 100%;margin-left: 20px;"
|
||||||
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
|
:style="{ transform: agreementContent.signUrlList && agreementContent.signUrlList[0].signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
|
||||||
onerror="this.style.display='none'" v-if="agreementContent.managerSignUrl" />
|
onerror="this.style.display='none'" v-if="agreementContent.signUrlList && agreementContent.signUrlList[0].managerSignUrl" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -224,10 +258,10 @@
|
||||||
<span>核算员:</span>
|
<span>核算员:</span>
|
||||||
|
|
||||||
|
|
||||||
<img :src="initImgPath(agreementContent.sltSignUrl)"
|
<img :src="initImgPath(agreementContent.signUrlList && agreementContent.signUrlList[0].sltSignUrl)"
|
||||||
style="width: 40px; height: 90px; max-width: 100%; margin-left: 20px;"
|
style="width: 40px; height: 90px; max-width: 100%; margin-left: 20px;"
|
||||||
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
|
:style="{ transform: agreementContent.signUrlList && agreementContent.signUrlList[0].signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
|
||||||
onerror="this.style.display='none'" v-if="agreementContent.sltSignUrl" />
|
onerror="this.style.display='none'" v-if="agreementContent.signUrlList && agreementContent.signUrlList[0].sltSignUrl" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -246,7 +280,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getProjectList, getUnitList, getAgreementInfoById, getUnitListFilterTeam } from '@/api/back/index.js'
|
import { getProjectList, getUnitList, getAgreementInfoById, getUnitListFilterTeam } from '@/api/back/index.js'
|
||||||
import { getSltList, costExamine, getSltInfo } from '@/api/cost/cost'
|
import { getSltList, costExamine, getSltAgreementBookApi } from '@/api/cost/cost'
|
||||||
import { toChineseAmount } from '@/utils/bonus.js'
|
import { toChineseAmount } from '@/utils/bonus.js'
|
||||||
import vueEasyPrint from 'vue-easy-print'
|
import vueEasyPrint from 'vue-easy-print'
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
|
|
@ -320,7 +354,7 @@ export default {
|
||||||
},
|
},
|
||||||
openPrint: false,
|
openPrint: false,
|
||||||
// 审批弹窗
|
// 审批弹窗
|
||||||
aform: { status: '2' },
|
aform: { status: '2', remark: '' },
|
||||||
//审批弹窗是否开启
|
//审批弹窗是否开启
|
||||||
applyVisible: false,
|
applyVisible: false,
|
||||||
id: '',
|
id: '',
|
||||||
|
|
@ -335,10 +369,18 @@ export default {
|
||||||
loseCost: '', // 丢失费用
|
loseCost: '', // 丢失费用
|
||||||
scrapCost: '', // 报废费用
|
scrapCost: '', // 报废费用
|
||||||
reductionCost: '', // 减免费用
|
reductionCost: '', // 减免费用
|
||||||
|
aqLeaseCost: '', // 租赁费用
|
||||||
|
aqRepairCost: '', // 维修费用
|
||||||
|
aqLoseCost: '', // 丢失费用
|
||||||
|
aqScrapCost: '', // 报废费用
|
||||||
|
aqReductionCost: '', // 减免费用
|
||||||
|
addMoneySafety: '',//安全费用小计
|
||||||
|
addMoneyProject: '',//施工费用小计
|
||||||
costAll: '', // 合计费用
|
costAll: '', // 合计费用
|
||||||
costAllUpper: '' // 合计费用大写
|
costAllUpper: '' // 合计费用大写
|
||||||
},
|
},
|
||||||
dialogTitle: ''
|
dialogTitle: '',
|
||||||
|
currentRow: {},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -464,8 +506,10 @@ export default {
|
||||||
},
|
},
|
||||||
//结算审批
|
//结算审批
|
||||||
handleExame(row) {
|
handleExame(row) {
|
||||||
|
this.currentRow = row
|
||||||
this.id = row.id
|
this.id = row.id
|
||||||
this.agreementIdTemp = row.agreementId
|
this.agreementIdTemp = row.agreementId
|
||||||
|
this.aform.remark = ''
|
||||||
this.applyVisible = true
|
this.applyVisible = true
|
||||||
},
|
},
|
||||||
//提交按钮
|
//提交按钮
|
||||||
|
|
@ -474,7 +518,9 @@ export default {
|
||||||
id: this.id,
|
id: this.id,
|
||||||
status: this.aform.status,
|
status: this.aform.status,
|
||||||
remark: this.aform.remark,
|
remark: this.aform.remark,
|
||||||
agreementId: this.agreementIdTemp
|
agreementId: this.agreementIdTemp,
|
||||||
|
settlementType: this.currentRow.settlementType,
|
||||||
|
sltTask: this.currentRow.sltTask
|
||||||
}
|
}
|
||||||
costExamine(param)
|
costExamine(param)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
|
@ -496,21 +542,47 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
async openPrintDialog(row) {
|
async openPrintDialog(row) {
|
||||||
this.dialogTitle = row.settlementType == 2 ? '安全工器具' : '机具设备'
|
// this.dialogTitle = row.settlementType == 2 ? '安全工器具' : '机具设备'
|
||||||
|
if (row.settlementType == 1) {
|
||||||
|
this.dialogTitle = '机具设备'
|
||||||
|
} else if (row.settlementType == 2) {
|
||||||
|
this.dialogTitle = '安全工器具'
|
||||||
|
} else {
|
||||||
|
this.dialogTitle = ''
|
||||||
|
}
|
||||||
row.enableQuerySltData = true
|
row.enableQuerySltData = true
|
||||||
this.openPrint = true
|
this.openPrint = true
|
||||||
try {
|
try {
|
||||||
const res = await getSltInfo([row])
|
const res = await getSltAgreementBookApi(row)
|
||||||
console.log('🚀 ~ openPrintDialog ~ res:', res)
|
console.log('🚀 ~ openPrintDialog ~ res:', res)
|
||||||
if (!res.data) return
|
if (!res.data) return
|
||||||
this.agreementContent = res.data
|
this.agreementContent = res.data
|
||||||
this.agreementContent.agreementCode = row.agreementCode
|
this.agreementContent.agreementCode = row.agreementCode
|
||||||
this.agreementContent.costAll =
|
this.agreementContent.addMoneySafety =
|
||||||
Number(res.data.leaseCost) +
|
Number(res.data.leaseCost) +
|
||||||
Number(res.data.repairCost) +
|
Number(res.data.repairCost) +
|
||||||
Number(res.data.scrapCost) +
|
Number(res.data.scrapCost) +
|
||||||
Number(res.data.loseCost) -
|
Number(res.data.loseCost) -
|
||||||
Number(res.data.reductionCost)
|
Number(res.data.reductionCost)
|
||||||
|
|
||||||
|
this.agreementContent.addMoneyProject =
|
||||||
|
Number(res.data.aqLeaseCost) +
|
||||||
|
Number(res.data.aqRepairCost) +
|
||||||
|
Number(res.data.aqScrapCost) +
|
||||||
|
Number(res.data.aqLoseCost) -
|
||||||
|
Number(res.data.aqReductionCost)
|
||||||
|
|
||||||
|
this.agreementContent.costAll =
|
||||||
|
Number(res.data.leaseCost) +
|
||||||
|
Number(res.data.repairCost) +
|
||||||
|
Number(res.data.scrapCost) +
|
||||||
|
Number(res.data.loseCost) -
|
||||||
|
Number(res.data.reductionCost) +
|
||||||
|
Number(res.data.aqLeaseCost) +
|
||||||
|
Number(res.data.aqRepairCost) +
|
||||||
|
Number(res.data.aqScrapCost) +
|
||||||
|
Number(res.data.aqLoseCost) -
|
||||||
|
Number(res.data.aqReductionCost)
|
||||||
// costAllUpper 中文大写
|
// costAllUpper 中文大写
|
||||||
this.agreementContent.costAllUpper = toChineseAmount(this.agreementContent.costAll.toFixed(2))
|
this.agreementContent.costAllUpper = toChineseAmount(this.agreementContent.costAll.toFixed(2))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -749,7 +821,8 @@ export default {
|
||||||
children: [
|
children: [
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
width: { size: 25, type: WidthType.PERCENTAGE },
|
columnSpan: 1,
|
||||||
|
width: { size: 40, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
|
|
@ -759,7 +832,7 @@ export default {
|
||||||
}),
|
}),
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
width: { size: 75, type: WidthType.PERCENTAGE },
|
width: { size: 60, type: WidthType.PERCENTAGE },
|
||||||
columnSpan: 3,
|
columnSpan: 3,
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
|
|
@ -776,7 +849,8 @@ export default {
|
||||||
children: [
|
children: [
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
width: { size: 25, type: WidthType.PERCENTAGE },
|
// columnSpan: 1,
|
||||||
|
width: { size: 20, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
|
|
@ -786,7 +860,7 @@ export default {
|
||||||
}),
|
}),
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
width: { size: 40, type: WidthType.PERCENTAGE },
|
width: { size: 20, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
|
|
@ -796,21 +870,15 @@ export default {
|
||||||
}),
|
}),
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
width: { size: 10, type: WidthType.PERCENTAGE },
|
width: { size: 60, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
|
||||||
new Paragraph({ alignment: AlignmentType.CENTER, text: '日期:' })
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
new TableCell({
|
|
||||||
...cellOpts,
|
|
||||||
width: { size: 25, type: WidthType.PERCENTAGE },
|
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
text: data.applyTime
|
text: `日期:` + data.applyTime
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
@ -831,20 +899,58 @@ export default {
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// 金额明细
|
// 项目 工机具 安全工器具
|
||||||
...[
|
|
||||||
['一、施工机具有偿使用费:', `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
|
||||||
['二、施工机具维修费:', `¥ ${Number(data.repairCost).toFixed(2)}`],
|
|
||||||
['三、施工机具丢失费:', `¥ ${Number(data.loseCost).toFixed(2)}`],
|
|
||||||
['四、施工机具损坏赔偿费:', `¥ ${Number(data.scrapCost).toFixed(2)}`],
|
|
||||||
['五、施工机具租赁减免费:', `¥ ${Number(data.reductionCost).toFixed(2)}`]
|
|
||||||
].map(
|
|
||||||
([label, value]) =>
|
|
||||||
new TableRow({
|
new TableRow({
|
||||||
children: [
|
children: [
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
columnSpan: 2,
|
width: { size: 40, type: WidthType.PERCENTAGE },
|
||||||
|
children: [
|
||||||
|
new Paragraph({
|
||||||
|
alignment: AlignmentType.CENTER,
|
||||||
|
text: '项目'
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
new TableCell({
|
||||||
|
...cellOpts,
|
||||||
|
width: { size: 30, type: WidthType.PERCENTAGE },
|
||||||
|
children: [
|
||||||
|
new Paragraph({
|
||||||
|
alignment: AlignmentType.CENTER,
|
||||||
|
text: '工机具'
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
new TableCell({
|
||||||
|
...cellOpts,
|
||||||
|
width: { size: 30, type: WidthType.PERCENTAGE },
|
||||||
|
children: [
|
||||||
|
new Paragraph({
|
||||||
|
alignment: AlignmentType.CENTER,
|
||||||
|
text: '安全工器具'
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
|
||||||
|
// 金额明细
|
||||||
|
...[
|
||||||
|
['一、施工机具有偿使用费:', `¥ ${Number(data.leaseCost).toFixed(2)}`, `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
||||||
|
['二、施工机具维修费:', `¥ ${Number(data.repairCost).toFixed(2)}`, `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
||||||
|
['三、施工机具丢失费:', `¥ ${Number(data.loseCost).toFixed(2)}`, `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
||||||
|
['四、施工机具损坏赔偿费:', `¥ ${Number(data.scrapCost).toFixed(2)}`, `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
||||||
|
['五、施工机具租赁减免费:', `¥ ${Number(data.reductionCost).toFixed(2)}`, `¥ ${Number(data.leaseCost).toFixed(2)}`],
|
||||||
|
['小计:', `¥ ${Number(data.addMoneySafety).toFixed(2)}`, `¥ ${Number(data.addMoneyProject).toFixed(2)}`]
|
||||||
|
].map(
|
||||||
|
([label, toolValue, safeValue]) =>
|
||||||
|
new TableRow({
|
||||||
|
children: [
|
||||||
|
// 项目
|
||||||
|
new TableCell({
|
||||||
|
...cellOpts,
|
||||||
|
width: { size: 40, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
|
|
@ -852,13 +958,27 @@ export default {
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// 工机具
|
||||||
new TableCell({
|
new TableCell({
|
||||||
...cellOpts,
|
...cellOpts,
|
||||||
columnSpan: 2,
|
width: { size: 30, type: WidthType.PERCENTAGE },
|
||||||
children: [
|
children: [
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
alignment: AlignmentType.CENTER,
|
alignment: AlignmentType.CENTER,
|
||||||
text: value
|
text: toolValue
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
|
||||||
|
// 安全工器具
|
||||||
|
new TableCell({
|
||||||
|
...cellOpts,
|
||||||
|
width: { size: 30, type: WidthType.PERCENTAGE },
|
||||||
|
children: [
|
||||||
|
new Paragraph({
|
||||||
|
alignment: AlignmentType.CENTER,
|
||||||
|
text: safeValue
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ module.exports = {
|
||||||
// 部署生产环境和开发环境下的URL。
|
// 部署生产环境和开发环境下的URL。
|
||||||
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
|
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
|
||||||
// 例如 https://www.bonus.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.bonus.vip/admin/,则设置 baseUrl 为 /admin/。
|
// 例如 https://www.bonus.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.bonus.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||||
publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? './' : '/' : '/', // 宏源
|
publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? '/iws/mea-web' : '/' : '/', // 宏源
|
||||||
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
||||||
outputDir: 'dist',
|
outputDir: 'dist',
|
||||||
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
||||||
|
|
@ -35,7 +35,7 @@ module.exports = {
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
// target: `http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api`, // 产线
|
//target: `http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api`, // 产线
|
||||||
// target: `http://192.168.0.96:18080`,//马
|
// target: `http://192.168.0.96:18080`,//马
|
||||||
// target: `http://192.168.0.244:18580`,//测试
|
// target: `http://192.168.0.244:18580`,//测试
|
||||||
// target: `http://192.168.2.223:18080`,//山
|
// target: `http://192.168.2.223:18080`,//山
|
||||||
|
|
@ -43,7 +43,7 @@ module.exports = {
|
||||||
// target: `http://192.168.0.234:18080`, //阮
|
// target: `http://192.168.0.234:18080`, //阮
|
||||||
// target: `http://192.168.137.1:18080`,//
|
// target: `http://192.168.137.1:18080`,//
|
||||||
// target: `http://172.20.10.9:18080`, // 韩傲宇
|
// target: `http://172.20.10.9:18080`, // 韩傲宇
|
||||||
target: `http://192.168.1.115:18080`, // 韩傲宇
|
target: `http://127.0.0.1:18080`, // 韩傲宇
|
||||||
// target: `http://192.168.0.60:18080`, // 赵福海
|
// target: `http://192.168.0.60:18080`, // 赵福海
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue