You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
474 lines
13 KiB
474 lines
13 KiB
<template>
|
|
<div>
|
|
<el-card shadow="never"
|
|
class="aui-card--fill">
|
|
<div class="mod-demo__demo}">
|
|
|
|
<el-form :inline="true"
|
|
:model="tableParams">
|
|
<el-form-item>
|
|
<el-select v-model="tableParams.customerId"
|
|
placeholder="客户"
|
|
clearable>
|
|
<el-option v-for="item in form.data['customerId']"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-select v-model="tableParams.clientType"
|
|
placeholder="类型"
|
|
clearable>
|
|
<el-option v-for="item in form.data['clientType']"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
<el-select v-model="tableParams.state"
|
|
placeholder="状态"
|
|
clearable>
|
|
<el-option v-for="item in form.data['state']"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<!-- <el-form-item>
|
|
<el-date-picker v-model="tableParams.commitDate"
|
|
type="daterange"
|
|
range-separator="至"
|
|
start-placeholder="发布开始日期"
|
|
end-placeholder="发布结束日期"
|
|
:default-value="new Date()"
|
|
value-format="yyyy-MM-dd HH:mm:ss">
|
|
</el-date-picker>
|
|
</el-form-item> -->
|
|
<!-- <el-form-item>
|
|
<el-date-picker v-model="tableParams.submitDate"
|
|
type="daterange"
|
|
range-separator="至"
|
|
start-placeholder="审核开始日期"
|
|
end-placeholder="审核结束日期"
|
|
:default-value="new Date()"
|
|
value-format="yyyy-MM-dd HH:mm:ss">
|
|
</el-date-picker>
|
|
</el-form-item> -->
|
|
<el-form-item>
|
|
<el-button @click="loadTableData()">查询</el-button>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary"
|
|
@click="commitCodeDiaShow('')">上传代码</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
<c-table column-type="index"
|
|
ref="table"
|
|
:url="tableUrl"
|
|
:params="tableParams"
|
|
keyword="CommitCodeList"
|
|
:operations="operations"
|
|
:tableHeight="tableHeight"
|
|
@submitCodeDiaShow="submitCodeDiaShow"
|
|
@showQRCode="showQRCode"
|
|
@submitRecall="submitRecall"
|
|
@issueCode="issueCode"
|
|
@submitFailReason="submitFailReason"
|
|
@operHistory="operHistory">
|
|
</c-table>
|
|
|
|
</div>
|
|
</el-card>
|
|
|
|
<commit-form ref="ref_commit_form"
|
|
:optionData="form.data"
|
|
@refresh="refresh"></commit-form>
|
|
|
|
<submit-form ref="ref_submit_form"
|
|
@refresh="refresh"></submit-form>
|
|
|
|
<oper-history ref="ref_oper_history"></oper-history>
|
|
|
|
<submit-fail-reason ref="ref_submit_fail_reason"></submit-fail-reason>
|
|
|
|
<c-dialog :showFooter="false"
|
|
:title="'二维码'"
|
|
:width="40"
|
|
:visible="qrCodeDia.visible"
|
|
@cancel="qrCodeDiaCancel">
|
|
<div style="text-align:center">
|
|
<el-image style="width: 300px; height: 300px"
|
|
:src="src"></el-image>
|
|
<div class="el-upload__tip">请用微信扫描二维码</div>
|
|
</div>
|
|
</c-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import CDialog from '@c/CDialog'
|
|
import CTable from '@c/CTable'
|
|
import SubmitForm from './SubmitForm'
|
|
import CommitForm from './CommitForm'
|
|
import OperHistory from './OperHistory'
|
|
import SubmitFailReason from './SubmitFailReason'
|
|
import { mapGetters } from 'vuex'
|
|
import { Loading } from 'element-ui' // 引入Loading服务
|
|
|
|
let loading// 加载动画
|
|
|
|
export default {
|
|
data () {
|
|
return {
|
|
|
|
// 查询相关
|
|
tableParams: {
|
|
customerId: '', // 客户
|
|
clientType: '', // 类型
|
|
state: '', // 代码状态
|
|
commitDate: '', // 发布日期
|
|
submitDate: '', // 审核日期
|
|
source: this.env
|
|
},
|
|
// 列表相关
|
|
tableUrl: '/third/code/uploadlist',
|
|
// 列表操作栏的操作项数组
|
|
operations: [
|
|
{
|
|
lable: '提交审核', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'submitCodeDiaShow', // 回调方法名称
|
|
isShow: function (row) {
|
|
if (row.status === 'unaudited' || row.status === 'audit_failed' || row.status === 'withdrawn') {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
lable: '二维码', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'showQRCode', // 回调方法名称
|
|
isShow: function (row) {
|
|
if (row.status === 'unaudited') {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
lable: '审核撤回', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'submitRecall', // 回调方法名称
|
|
isShow: function (row) {
|
|
if (row.status === 'auditing') {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
lable: '发布', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'issueCode', // 回调方法名称
|
|
isShow: function (row) {
|
|
if (row.status === 'audit_success' || row.status === 'release_failed') {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
lable: '审核失败原因', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'submitFailReason', // 回调方法名称
|
|
isShow: function (row) {
|
|
if (row.status === 'audit_failed') {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
lable: '操作历史', // 按钮显示名称
|
|
size: 'mini',
|
|
style: 'margin: 0 6px;',
|
|
type: 'text',
|
|
slot: '',
|
|
plain: false,
|
|
methodName: 'operHistory',
|
|
isShow: 'show'
|
|
}
|
|
],
|
|
// 操作历史弹出框相关
|
|
operDia: {
|
|
visible: false
|
|
},
|
|
// 二维码弹出框相关
|
|
qrCodeDia: {
|
|
visible: false
|
|
},
|
|
src: '',
|
|
// 查询栏下拉框数据
|
|
form: {
|
|
dataUrl: [], // 下拉框/单选框/复选框等获取数据的url
|
|
data: { // 全部下拉框数据
|
|
clientType: [
|
|
{
|
|
value: 'resi',
|
|
label: '居民端'
|
|
},
|
|
{
|
|
value: 'work',
|
|
label: '工作端'
|
|
}
|
|
],
|
|
state: [
|
|
{
|
|
value: 'unaudited',
|
|
label: '未审核'
|
|
},
|
|
{
|
|
value: 'auditing',
|
|
label: '审核中'
|
|
},
|
|
{
|
|
value: 'audit_success',
|
|
label: '审核成功'
|
|
},
|
|
{
|
|
value: 'audit_failed',
|
|
label: '审核被拒绝'
|
|
},
|
|
{
|
|
value: 'withdrawn',
|
|
label: '已撤回'
|
|
},
|
|
{
|
|
value: 'delay',
|
|
label: '审核延后'
|
|
},
|
|
{
|
|
value: 'release_success',
|
|
label: '发布成功'
|
|
},
|
|
{
|
|
value: 'release_failed',
|
|
label: '发布失败'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
components: {
|
|
CDialog, SubmitForm, CommitForm, OperHistory, CTable, SubmitFailReason
|
|
},
|
|
activated () {
|
|
let params = this.$route.params
|
|
|
|
// 由客户注册信息跳转来
|
|
if (params.showCommit) {
|
|
this.form.data.customerId = params.customerList
|
|
this.commitCodeDiaShow(params.customerId)
|
|
}
|
|
this.$nextTick(() => {
|
|
this.$refs.table.doLayout() // 解决表格错位
|
|
})
|
|
},
|
|
mounted () {
|
|
this.renderSelData()
|
|
this.loadTableData()
|
|
},
|
|
computed: {
|
|
tableHeight () {
|
|
return this.clientHeight - 60 - 80 - 80 - 90
|
|
},
|
|
...mapGetters(['clientHeight', 'env'])
|
|
},
|
|
methods: {
|
|
// 刷新
|
|
refresh () {
|
|
this.loadTableData()
|
|
},
|
|
// 加载列表数据
|
|
loadTableData () {
|
|
this.tableParams.source = this.env
|
|
this.$nextTick(() => {
|
|
this.$refs.table.loadData() // 获取表格数据
|
|
})
|
|
},
|
|
// 打开上传代码窗口
|
|
commitCodeDiaShow (customerId) {
|
|
this.$nextTick(() => {
|
|
let dataForm = {
|
|
clientType: 'resi',
|
|
customerId: customerId
|
|
}
|
|
this.$refs['ref_commit_form'].initData(dataForm)
|
|
})
|
|
},
|
|
|
|
// 提交审核
|
|
submitCodeDiaShow (row) {
|
|
let feedbackShow = false
|
|
if (row.status === 'audit_failed') {
|
|
feedbackShow = true
|
|
}
|
|
this.$refs['ref_submit_form'].initData(row.id, feedbackShow)
|
|
},
|
|
|
|
// 审核撤回
|
|
submitRecall (row) {
|
|
const url = '/third/code/undo'
|
|
const param = {
|
|
codeId: row.id
|
|
}
|
|
window.app.ajax.post(url, param,
|
|
(data, rspMsg) => {
|
|
this.$message.success('撤回成功' + rspMsg)
|
|
this.refresh()
|
|
},
|
|
(rspMsg, data) => {
|
|
this.$message.error(rspMsg)
|
|
})
|
|
},
|
|
// 体验版二维码
|
|
showQRCode (row) {
|
|
this.qrCodeDia.visible = true
|
|
const url = '/third/code/qrcode'
|
|
const param = {
|
|
codeId: row.id
|
|
}
|
|
this.startLoading()
|
|
window.app.ajax.post(url, param,
|
|
(data, rspMsg) => {
|
|
// // eslint-disable-next-line
|
|
// debugger
|
|
this.endLoading()
|
|
if (data) {
|
|
// console.log(data.qrcode)
|
|
this.src = data.qrcode
|
|
}
|
|
},
|
|
(rspMsg, data) => {
|
|
this.endLoading()
|
|
this.$message.error(rspMsg)
|
|
}, { headers: { 'Content-Type': 'image/jpeg' } })
|
|
},
|
|
// 发布
|
|
issueCode (row) {
|
|
const url = '/third/code/release'
|
|
const param = {
|
|
codeId: row.id
|
|
}
|
|
window.app.ajax.post(url, param,
|
|
(data, rspMsg) => {
|
|
this.$message.success(rspMsg)
|
|
},
|
|
(rspMsg, data) => {
|
|
this.$message.error(rspMsg)
|
|
})
|
|
},
|
|
// 审核失败原因
|
|
submitFailReason (row) {
|
|
this.$refs['ref_submit_fail_reason'].initData(row.id)
|
|
},
|
|
// 操作历史
|
|
operHistory (row) {
|
|
this.$refs['ref_oper_history'].initData(row.id)
|
|
},
|
|
|
|
operDiaCancel () {
|
|
this.operDia.visible = false
|
|
},
|
|
qrCodeDiaCancel () {
|
|
this.qrCodeDia.visible = false
|
|
},
|
|
async renderSelData () { // 渲染下拉框/单选框/复选框等数据
|
|
const customerUrl = ' https://epmet-cloud.elinkservice.cn/api/third/pacustomer/registerbyauth'
|
|
const param = {
|
|
// workAuth: 1,
|
|
// resiAuth: 1,
|
|
source: this.env,
|
|
initState: 1
|
|
}
|
|
this.startLoading()
|
|
await window.app.ajax.post(customerUrl, param,
|
|
(data, rspMsg) => {
|
|
this.endLoading()
|
|
if (data) {
|
|
let customerList = []
|
|
|
|
data.forEach(element => {
|
|
let oneObj = {
|
|
value: element.customerId,
|
|
label: element.customerName
|
|
}
|
|
customerList.push(oneObj)
|
|
})
|
|
|
|
this.form.data.customerId = customerList
|
|
this.$forceUpdate()
|
|
}
|
|
},
|
|
(rspMsg, data) => {
|
|
this.endLoading()
|
|
this.$message.error(rspMsg)
|
|
})
|
|
},
|
|
// 开启加载动画
|
|
startLoading () {
|
|
loading = Loading.service({
|
|
lock: true, // 是否锁定
|
|
text: '正在加载……', // 加载中需要显示的文字
|
|
background: 'rgba(0,0,0,.7)' // 背景颜色
|
|
})
|
|
},
|
|
// 结束加载动画
|
|
endLoading () {
|
|
// clearTimeout(timer);
|
|
if (loading) {
|
|
loading.close()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style>
|
|
.el-upload__tip {
|
|
color: rgb(155, 155, 155);
|
|
}
|
|
</style>
|
|
|