commit
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
<th>活动名称</th>
|
||||
<td>{{ viewData.name }}</td>
|
||||
<th>活动类型</th>
|
||||
<td>{{ viewData.type === 1 ? "分工会活动" : viewData.type === 2 ? "协会协会活动" : "校工会活动" }}</td>
|
||||
<td>{{ viewData.type === 40001 ? "校工会活动" : (viewData.type === 40002 ? "分工会活动" : "协会活动") }}</td>
|
||||
<th>活动项目类型</th>
|
||||
<td>{{ viewData.projectTypeName }}( {{ viewData.projectTypeCode }})</td>
|
||||
</tr>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div>
|
||||
|
||||
<el-dialog
|
||||
title="活动二维码"
|
||||
:title="title"
|
||||
:visible.sync="codeDialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
width="40%">
|
||||
@@ -27,7 +27,7 @@ module.exports = {
|
||||
data() {
|
||||
return {
|
||||
codeDialogVisible: false,
|
||||
|
||||
title: '活动二维码',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -47,7 +47,7 @@ module.exports = {
|
||||
var filename = name + '_' + (new Date()).getTime() + '.' + type;
|
||||
this.saveFile(dataurl, filename);
|
||||
},
|
||||
openCode(url) {
|
||||
openCode(url, title) {
|
||||
this.codeDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
$("#qrcode").html("")
|
||||
@@ -59,6 +59,7 @@ module.exports = {
|
||||
correctLevel: 3 //容错级别,默认为2,最高为3,为了让用户扫码最快,容错级别应当设为最低
|
||||
});
|
||||
})
|
||||
this.title = title ? title : '活动二维码'
|
||||
console.log(APP_DOMAIN + url)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,194 +1,242 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card shadow="never">
|
||||
<el-form ref="form">
|
||||
<div>
|
||||
<el-card shadow="never">
|
||||
<el-form ref="form">
|
||||
|
||||
<el-card v-for="(s,idx) in subject" :key="s.id" class="item" shadow="hover">
|
||||
<!-- <el-form-item :label="(s.subjectType==='radio'?'(单选)':'(多选)')+ (idx+1)+'.'" prop="subjectName">-->
|
||||
<el-form-item label="" prop="subjectName">
|
||||
<div class="s-title-wrap">
|
||||
<el-row align="middle" style="width: 100%" type="flex">
|
||||
<el-col :xl="15"
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;">
|
||||
<el-input v-model="s.subjectName" class="text-input"
|
||||
data-type="subject"></el-input>
|
||||
</el-col>
|
||||
<el-col :xl="2" style="text-align: center"></el-col>
|
||||
<!-- <el-col :xl="2" style="text-align: center">
|
||||
<div class="option-delete">
|
||||
<el-button circle
|
||||
icon="el-icon-delete"
|
||||
size="mini" type="danger"
|
||||
@click="subject.splice(idx,1)"></el-button>
|
||||
</div>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="s-options-list" style="margin-top: 10px;">
|
||||
<el-table :data="s.options" border>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="类型"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="{row}">
|
||||
<el-select v-model="row.optionType" placeholder="请选择"
|
||||
@change="optionTypeChange(row)">
|
||||
<el-option
|
||||
<el-card v-for="(s,idx) in subject" :key="s.id" class="item" shadow="hover">
|
||||
<!-- <el-form-item :label="(s.subjectType==='radio'?'(单选)':'(多选)')+ (idx+1)+'.'" prop="subjectName">-->
|
||||
<el-form-item label="" prop="subjectName">
|
||||
<div class="s-title-wrap">
|
||||
<el-row align="middle" style="width: 100%" type="flex">
|
||||
<el-col :xl="15"
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;">
|
||||
<el-input v-model="s.subjectName" class="text-input"
|
||||
data-type="subject"></el-input>
|
||||
</el-col>
|
||||
<el-col :xl="2" style="text-align: center"></el-col>
|
||||
<!-- <el-col :xl="2" style="text-align: center">
|
||||
<div class="option-delete">
|
||||
<el-button circle
|
||||
icon="el-icon-delete"
|
||||
size="mini" type="danger"
|
||||
@click="subject.splice(idx,1)"></el-button>
|
||||
</div>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="s-options-list" style="margin-top: 10px;">
|
||||
<el-table :data="s.options" border>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="类型"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="{row}">
|
||||
<el-select v-model="row.optionType" placeholder="请选择"
|
||||
@change="optionTypeChange(row)">
|
||||
<el-option
|
||||
|
||||
v-for="item in typeOptions"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="福利名称"
|
||||
>
|
||||
<template slot-scope="{row}">
|
||||
<div
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;padding-left: 10px;">
|
||||
<i v-if="s.subjectType==='radio'" class="fa fa-circle-o"
|
||||
style="cursor: pointer"></i>
|
||||
<i v-else-if="s.subjectType==='checkBox'" class="fa fa-square-o"
|
||||
style="cursor: pointer"></i>
|
||||
v-for="item in typeOptions"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="福利名称"
|
||||
>
|
||||
<template slot-scope="{row}">
|
||||
<div
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;padding-left: 10px;">
|
||||
<i v-if="s.subjectType==='radio'" class="fa fa-circle-o"
|
||||
style="cursor: pointer"></i>
|
||||
<i v-else-if="s.subjectType==='checkBox'" class="fa fa-square-o"
|
||||
style="cursor: pointer"></i>
|
||||
|
||||
<template v-if="row.optionType==='套餐'">
|
||||
<el-input v-model="row.optionName" autosize
|
||||
class="text-input"
|
||||
data-type="option"
|
||||
></el-input>
|
||||
</template>
|
||||
<template v-if="row.optionType==='套餐'">
|
||||
<el-input v-model="row.optionName" autosize
|
||||
class="text-input"
|
||||
data-type="option"
|
||||
></el-input>
|
||||
</template>
|
||||
|
||||
<template v-if="row.optionType==='提货券'">
|
||||
<el-select v-model="row.optionNameId" placeholder="请选择"
|
||||
@change="optionNameIdChange(row)" style="width: 100%">
|
||||
<el-option
|
||||
<template v-if="row.optionType==='提货券'">
|
||||
<el-select v-model="row.optionNameId" placeholder="请选择"
|
||||
@change="optionNameIdChange(row)" style="width: 100%">
|
||||
<el-option
|
||||
|
||||
v-for="item in shoppingTypeOptions"
|
||||
:key="item.id"
|
||||
:disabled="item.disabled"
|
||||
:label="item.shoppingName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
v-for="item in shoppingTypeOptions"
|
||||
:key="item.id"
|
||||
:disabled="item.disabled"
|
||||
:label="item.shoppingName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column width="120px" label="所属供应商">-->
|
||||
<!-- <template slot-scope="{row}">-->
|
||||
<!-- {{ row.shoppingName ? row.shoppingName : '暂无' }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column width="120px" label="所属供应商">-->
|
||||
<!-- <template slot-scope="{row}">-->
|
||||
<!-- {{ row.shoppingName ? row.shoppingName : '暂无' }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
|
||||
<el-table-column label="备注1">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.supplier" type="textarea" max="100"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注1">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.supplier" type="textarea" max="100"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="备注2">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.simpleDesc" type="textarea" max="100"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="备注2">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.simpleDesc" type="textarea" max="100"></el-input>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column label="排序" width="120px">
|
||||
<template slot-scope="{row}">
|
||||
<div
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;padding-left: 10px;">
|
||||
<el-input v-model="row.optionSort" autosize
|
||||
class="text-input"
|
||||
data-type="option"
|
||||
></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规格">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary"
|
||||
@click="openSpecs(scope.row.specs,idx,scope.$index)">编辑规格
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="图片" width="120">
|
||||
<template slot-scope="{row,$index}">
|
||||
<image-upload :height="100"
|
||||
:width="100"
|
||||
:limit="1"
|
||||
:file-type="['png','jpg']"
|
||||
:file-size="0.2"
|
||||
:size="[500,200]"
|
||||
v-model="row.imgUrl"></image-upload>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序" width="120px">
|
||||
<template slot-scope="{row}">
|
||||
<div
|
||||
style="border: 1px dashed rgb(217, 217, 217);border-radius:6px;display: flex;align-items: center;padding-left: 10px;">
|
||||
<el-input v-model="row.optionSort" autosize
|
||||
class="text-input"
|
||||
data-type="option"
|
||||
></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="说明" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary"
|
||||
@click="openDescRichText(scope.row.description,idx,scope.$index)">编辑说明
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- align="center"-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- label="默认值"-->
|
||||
<!-- width="100px">-->
|
||||
<!-- <template slot-scope="{row,$index}">-->
|
||||
<!-- <el-checkbox v-model="row.isSystemDefault"-->
|
||||
<!-- @change="(val,event)=>{systemDefaultChange(idx,$index,val)}"-->
|
||||
<!-- ></el-checkbox>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="没选系统自动分配" width="150px">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-checkbox v-model="row.isDefaultOption"
|
||||
@change="(val,event)=>{defaultOptionChange(idx,$index,val)}"
|
||||
></el-checkbox>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="图片" width="120">
|
||||
<template slot-scope="{row,$index}">
|
||||
<image-upload :height="100"
|
||||
:width="100"
|
||||
:limit="1"
|
||||
:file-type="['png','jpg']"
|
||||
:file-size="0.2"
|
||||
:size="[500,200]"
|
||||
v-model="row.imgUrl"></image-upload>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template slot-scope="{row,$index}">
|
||||
<div class="option-delete">
|
||||
<el-button circle
|
||||
icon="el-icon-delete"
|
||||
size="mini" type="danger"
|
||||
@click="deleteRow(s.options,row,$index)"></el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table-column label="说明" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary"
|
||||
@click="openDescRichText(scope.row.description,idx,scope.$index)">编辑说明
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- align="center"-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- label="默认值"-->
|
||||
<!-- width="100px">-->
|
||||
<!-- <template slot-scope="{row,$index}">-->
|
||||
<!-- <el-checkbox v-model="row.isSystemDefault"-->
|
||||
<!-- @change="(val,event)=>{systemDefaultChange(idx,$index,val)}"-->
|
||||
<!-- ></el-checkbox>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="没选系统自动分配" width="150px">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-checkbox v-model="row.isDefaultOption"
|
||||
@change="(val,event)=>{defaultOptionChange(idx,$index,val)}"
|
||||
></el-checkbox>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<div class="s-operation">
|
||||
<el-button size="small" type="primary"
|
||||
@click="s.options.push({optionType:'套餐',optionNameId:'',optionName:'福利'+(s.options.length+1),optionSort:s.options.length+1,imgUrl:null,isDefaultOption:false,isSystemDefault:false})">
|
||||
添加福利
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template slot-scope="{row,$index}">
|
||||
<div class="option-delete">
|
||||
<el-button circle
|
||||
icon="el-icon-delete"
|
||||
size="mini" type="danger"
|
||||
@click="deleteRow(s.options,row,$index)"></el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div class="s-operation">
|
||||
<el-button size="small" type="primary"
|
||||
@click="s.options.push({optionType:'套餐',optionNameId:'',optionName:'福利'+(s.options.length+1),optionSort:s.options.length+1,imgUrl:null,isDefaultOption:false,isSystemDefault:false})">
|
||||
添加福利
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="richTextDialog"
|
||||
title="编辑说明"
|
||||
:append-to-body="true"
|
||||
width="60%">
|
||||
<text-editor v-model="descRichTextContent"></text-editor>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="richTextDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="saveRichText">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="richTextDialog"
|
||||
title="编辑说明"
|
||||
:append-to-body="true"
|
||||
width="60%">
|
||||
<text-editor v-model="descRichTextContent"></text-editor>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="richTextDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="saveRichText">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="specsDialog"
|
||||
title="编辑规格"
|
||||
:append-to-body="true"
|
||||
width="60%">
|
||||
<el-table :data="specs" border size="small">
|
||||
<el-table-column label="规格名称" prop="value">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.value" maxlength="200"
|
||||
placeholder="请输入规格名称"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="100px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button type="primary" size="mini"
|
||||
@click="specs.push({})">添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
@click="specs.splice(scope.$index,1)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="specsDialog = false">取 消</el-button>
|
||||
<el-button type="danger" @click="specs = []">清 空</el-button>
|
||||
<el-button type="primary" @click="saveSpecs">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -196,232 +244,252 @@
|
||||
let questionRichTextEditor = null
|
||||
|
||||
module.exports = {
|
||||
components: {
|
||||
vuedraggable: window.vuedraggable,
|
||||
},
|
||||
watch: {
|
||||
subject(val) {
|
||||
components: {
|
||||
vuedraggable: window.vuedraggable
|
||||
},
|
||||
watch: {
|
||||
subject(val) {
|
||||
}
|
||||
},
|
||||
props: {
|
||||
subject: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
files: [],
|
||||
typeOptions: ["套餐", "提货券"],
|
||||
shoppingTypeOptions: null,
|
||||
richTextDialog: false,
|
||||
subjectIndex: 0,
|
||||
optionIndex: 0,
|
||||
imgPopover: false,
|
||||
idx: null,
|
||||
oidx: null,
|
||||
|
||||
//富文本内容
|
||||
descRichTextContent: "",
|
||||
|
||||
// 规格相关
|
||||
specsDialog: false,
|
||||
specs: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteRow(options, row, index) {
|
||||
options.splice(index, 1)
|
||||
const shoppingTypeOption = this.shoppingTypeOptions.find(v => v.id === row.optionNameId)
|
||||
shoppingTypeOption.disabled = false
|
||||
},
|
||||
optionTypeChange(row) {
|
||||
this.optionNameIdChange()
|
||||
row.optionNameId = null
|
||||
row.optionName = null
|
||||
},
|
||||
optionNameIdChange(row) {
|
||||
if (row) {
|
||||
row.optionName = this.shoppingTypeOptions.find(v => v.id === row.optionNameId).shoppingName
|
||||
}
|
||||
const optionNameIds = this.subject[0].options.map(v => v.optionNameId)
|
||||
this.shoppingTypeOptions.forEach(v => {
|
||||
v.disabled = optionNameIds.includes(v.id)
|
||||
})
|
||||
this.$forceUpdate()
|
||||
},
|
||||
addSubject(type) {
|
||||
let subject = {
|
||||
subjectName: "题目" + (this.subject.length + 1),
|
||||
subjectType: type,
|
||||
options: [
|
||||
{ optionName: "选项一", imgUrl: null },
|
||||
{ optionName: "选项一", imgUrl: null }
|
||||
]
|
||||
}
|
||||
this.subject.push(subject)
|
||||
},
|
||||
defaultOptionChange(idx, oidx, val) {
|
||||
const subject = this.subject[idx]
|
||||
const { subjectType } = subject
|
||||
if (val) {
|
||||
// subject.options.forEach(v => v.isDefaultOption = false)
|
||||
subject.options[oidx].isDefaultOption = true
|
||||
}
|
||||
},
|
||||
systemDefaultChange(idx, oidx, val) {
|
||||
const subject = this.subject[idx]
|
||||
const { subjectType } = subject
|
||||
if (val) {
|
||||
subject.options.forEach(v => v.isSystemDefault = false)
|
||||
subject.options[oidx].isSystemDefault = true
|
||||
}
|
||||
},
|
||||
validate(fn) {
|
||||
if (this._validate()) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
},
|
||||
_validate() {
|
||||
return this.subject.some(v => {
|
||||
if (!v.subjectName) return true
|
||||
return v.options.some(x => {
|
||||
if (!x.optionName) return true
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 规格相关
|
||||
* @param specs
|
||||
* @param sIdx
|
||||
* @param oIdx
|
||||
*/
|
||||
openSpecs(specs, sIdx, oIdx) {
|
||||
this.specs = specs ? specs : []
|
||||
this.specsDialog = true
|
||||
this.subjectIndex = sIdx
|
||||
this.optionIndex = oIdx
|
||||
},
|
||||
saveSpecs() {
|
||||
this.subject[this.subjectIndex]["options"][this.optionIndex].specs = this.specs
|
||||
this.specsDialog = false
|
||||
console.log(this.subject)
|
||||
},
|
||||
openDescRichText(richText, sIdx, oIdx) {
|
||||
this.descRichTextContent = richText
|
||||
this.richTextDialog = true
|
||||
this.subjectIndex = sIdx
|
||||
this.optionIndex = oIdx
|
||||
},
|
||||
saveRichText() {
|
||||
this.subject[this.subjectIndex]["options"][this.optionIndex].description = this.descRichTextContent
|
||||
this.richTextDialog = false
|
||||
},
|
||||
async getShoppingType() {
|
||||
const resp = await $.get("/platform/shoppingType/apply/getShoppingType", { typeName: "商超" })
|
||||
this.shoppingTypeOptions = resp.data
|
||||
},
|
||||
doCopy(row) {
|
||||
const input = document.createElement("input")
|
||||
input.value = APP_DOMAIN + FILE_STREAM_PREVIEW_ADDRESS + "?id=" + row.id // 设置复制内容
|
||||
document.body.appendChild(input) // 添加临时实例
|
||||
input.select() // 选择实例内容
|
||||
document.execCommand("Copy") // 执行复制
|
||||
document.body.removeChild(input) // 删除临时实例
|
||||
this.$message.success("复制成功!")
|
||||
}
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getShoppingType()
|
||||
}
|
||||
},
|
||||
props: {
|
||||
subject: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
files: [],
|
||||
typeOptions: ["套餐", "提货券"],
|
||||
shoppingTypeOptions: null,
|
||||
richTextDialog: false,
|
||||
subjectIndex: 0,
|
||||
optionIndex: 0,
|
||||
imgPopover: false,
|
||||
idx: null,
|
||||
oidx: null,
|
||||
|
||||
//富文本内容
|
||||
descRichTextContent: ''
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteRow(options, row, index) {
|
||||
options.splice(index, 1)
|
||||
const shoppingTypeOption = this.shoppingTypeOptions.find(v => v.id === row.optionNameId)
|
||||
shoppingTypeOption.disabled = false
|
||||
},
|
||||
optionTypeChange(row) {
|
||||
this.optionNameIdChange()
|
||||
row.optionNameId = null
|
||||
row.optionName = null
|
||||
},
|
||||
optionNameIdChange(row) {
|
||||
if (row) {
|
||||
row.optionName = this.shoppingTypeOptions.find(v => v.id === row.optionNameId).shoppingName
|
||||
}
|
||||
const optionNameIds = this.subject[0].options.map(v => v.optionNameId)
|
||||
this.shoppingTypeOptions.forEach(v => {
|
||||
v.disabled = optionNameIds.includes(v.id)
|
||||
})
|
||||
this.$forceUpdate()
|
||||
},
|
||||
addSubject(type) {
|
||||
let subject = {
|
||||
subjectName: '题目' + (this.subject.length + 1),
|
||||
subjectType: type,
|
||||
options: [
|
||||
{optionName: '选项一', imgUrl: null},
|
||||
{optionName: '选项一', imgUrl: null}
|
||||
]
|
||||
}
|
||||
this.subject.push(subject)
|
||||
},
|
||||
defaultOptionChange(idx, oidx, val) {
|
||||
const subject = this.subject[idx]
|
||||
const {subjectType} = subject
|
||||
if (val) {
|
||||
// subject.options.forEach(v => v.isDefaultOption = false)
|
||||
subject.options[oidx].isDefaultOption = true
|
||||
}
|
||||
},
|
||||
systemDefaultChange(idx, oidx, val) {
|
||||
const subject = this.subject[idx]
|
||||
const {subjectType} = subject
|
||||
if (val) {
|
||||
subject.options.forEach(v => v.isSystemDefault = false)
|
||||
subject.options[oidx].isSystemDefault = true
|
||||
}
|
||||
},
|
||||
validate(fn) {
|
||||
if (this._validate()) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
},
|
||||
_validate() {
|
||||
return this.subject.some(v => {
|
||||
if (!v.subjectName) return true
|
||||
return v.options.some(x => {
|
||||
if (!x.optionName) return true
|
||||
})
|
||||
})
|
||||
},
|
||||
openDescRichText(richText, sIdx, oIdx) {
|
||||
this.descRichTextContent = richText
|
||||
this.richTextDialog = true
|
||||
this.subjectIndex = sIdx
|
||||
this.optionIndex = oIdx
|
||||
},
|
||||
saveRichText() {
|
||||
this.subject[this.subjectIndex]['options'][this.optionIndex].description = this.descRichTextContent
|
||||
this.richTextDialog = false
|
||||
},
|
||||
async getShoppingType() {
|
||||
const resp = await $.get("/platform/shoppingType/apply/getShoppingType", {typeName: "商超"})
|
||||
this.shoppingTypeOptions = resp.data
|
||||
},
|
||||
doCopy(row) {
|
||||
const input = document.createElement('input')
|
||||
input.value = APP_DOMAIN + FILE_STREAM_PREVIEW_ADDRESS + "?id=" + row.id // 设置复制内容
|
||||
document.body.appendChild(input) // 添加临时实例
|
||||
input.select() // 选择实例内容
|
||||
document.execCommand('Copy') // 执行复制
|
||||
document.body.removeChild(input) // 删除临时实例
|
||||
this.$message.success('复制成功!')
|
||||
},
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getShoppingType()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.avatar-uploader .el-upload {
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
/* width: 40px;
|
||||
height: 40px;*/
|
||||
/*line-height: 40px;*/
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
/* width: 40px;
|
||||
height: 40px;*/
|
||||
/*line-height: 40px;*/
|
||||
}
|
||||
|
||||
.avatar-uploader .el-upload:hover {
|
||||
border-color: #409EFF;
|
||||
border-color: #409EFF;
|
||||
}
|
||||
|
||||
.avatar-uploader-icon {
|
||||
font-size: 14px;
|
||||
color: #8c939d;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
color: #8c939d;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.el-upload el-upload--text {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 100px;
|
||||
height: 80px;
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 80px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*被拖拽对象的样式*/
|
||||
.item {
|
||||
padding: 6px;
|
||||
background-color: #FFF;
|
||||
border: solid 1px #eee;
|
||||
margin-bottom: 10px;
|
||||
cursor: move;
|
||||
padding: 6px;
|
||||
background-color: #FFF;
|
||||
border: solid 1px #eee;
|
||||
margin-bottom: 10px;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.item:hover {
|
||||
/*background-color: #f1f1f1;*/
|
||||
cursor: move;
|
||||
/*background-color: #f1f1f1;*/
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
/*选中样式*/
|
||||
.chosen {
|
||||
border: solid 1px #3089dc !important;
|
||||
border: solid 1px #3089dc !important;
|
||||
}
|
||||
|
||||
.s-title-wrap {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
word-break: break-word;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
word-break: break-word;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
.s-operation {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: start;
|
||||
padding: 5px 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: start;
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
.s-operation > span {
|
||||
display: flex;
|
||||
height: 22px;
|
||||
cursor: pointer;
|
||||
color: #2672ff;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
height: 22px;
|
||||
cursor: pointer;
|
||||
color: #2672ff;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
|
||||
.option-delete {
|
||||
width: 80px;
|
||||
text-align: center;
|
||||
width: 80px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.s-operation i {
|
||||
margin-right: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.text-input > input, .text-input > textarea {
|
||||
resize: none;
|
||||
overflow: hidden;
|
||||
/*border: 1px dashed rgb(217, 217, 217);*/
|
||||
border: none;
|
||||
resize: none;
|
||||
overflow: hidden;
|
||||
/*border: 1px dashed rgb(217, 217, 217);*/
|
||||
border: none;
|
||||
}
|
||||
|
||||
.avatar-delete {
|
||||
font-size: 20px;
|
||||
color: red;
|
||||
font-size: 20px;
|
||||
color: red;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,442 +1,471 @@
|
||||
<template>
|
||||
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
|
||||
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
|
||||
|
||||
<el-tab-pane label="提案基础信息" name="1">
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item label="提案名称" span="3">
|
||||
<div style="font-weight:bold;">
|
||||
{{ viewData.proposalName }}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="提案编号">{{ viewData.proposalCode }}</el-descriptions-item>
|
||||
<el-descriptions-item label="提案人">{{
|
||||
viewData.createUserName + '-' + viewData.loginname
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="提案时间">{{ viewData.createTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="教代会届次"> {{ viewData.meetingName || '暂无' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="提案人工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
<el-descriptions-item :label="viewData.mannerCode!=='W03'?'代表团名称':'委员会名称'">
|
||||
{{ viewData.mannerCode !== 'W03' ? viewData.delegationName : viewData.committeeName }}
|
||||
</el-descriptions-item>
|
||||
<el-tab-pane label="提案基础信息" name="1">
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item label="提案名称" span="3">
|
||||
<div style="font-weight:bold;">
|
||||
{{ viewData.proposalName }}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="提案编号">{{ viewData.proposalCode }}</el-descriptions-item>
|
||||
<el-descriptions-item label="提案人">{{
|
||||
viewData.createUserName + "-" + viewData.loginname
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="提案时间">{{ viewData.createTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="教代会届次"> {{ viewData.meetingName || "暂无" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="提案人工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
<el-descriptions-item :label="viewData.mannerCode!=='W03'?'代表团名称':'委员会名称'">
|
||||
{{ viewData.mannerCode !== "W03" ? viewData.delegationName : viewData.committeeName }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="提案类型">{{ viewData.typeName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="立案结果" span="2"> {{
|
||||
viewData.resultName ? viewData.resultName : '暂无'
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="提案方式" >{{ viewData.mannerName }}</el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="建议落实部门" >{{ viewData.implementUnitName }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="提案类型">{{ viewData.typeName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="立案结果" span="2"> {{
|
||||
viewData.resultName ? viewData.resultName : "暂无"
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="提案方式" >{{ viewData.mannerName }}</el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="建议落实部门" >{{ viewData.implementUnitName }}</el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item label="提案内容" span="3">
|
||||
<div class="text-left" v-html="viewData.brief"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="可行性分析" span="3">
|
||||
<div class="text-left" v-html="viewData.measures"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签  字" span="3">
|
||||
<el-image v-if="viewData.createUserSign" :src="viewData.createUserSign" class="item-sign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-descriptions-item label="提案内容" span="3">
|
||||
<div class="text-left" v-html="viewData.brief"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="可行性分析" span="3">
|
||||
<div class="text-left" v-html="viewData.measures"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附件" span="3">
|
||||
<file-upload v-if="viewData.files&&viewData.files.length"
|
||||
:files="viewData.files" :view="true"></file-upload>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签  字" span="3">
|
||||
<el-image v-if="viewData.createUserSign" :src="viewData.createUserSign" class="item-sign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<file-upload v-if="viewData.files&&viewData.files.length"
|
||||
:files="viewData.files" :view="true"></file-upload>
|
||||
<slot name="seconded"></slot>
|
||||
|
||||
<slot name="seconded"></slot>
|
||||
</el-tab-pane>
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="提案并案信息" name="99" v-if="viewData.isConjoin !== 0">
|
||||
<el-table :data="viewData.conJoinList" border>
|
||||
<el-table-column prop="proposalCode" label="提案编号"></el-table-column>
|
||||
<el-table-column prop="username" label="提案人"></el-table-column>
|
||||
<el-table-column prop="proposalName" label="提案名称">
|
||||
<template slot-scope="{row}">
|
||||
<el-tab-pane label="提案并案信息" name="99" v-if="viewData.isConjoin !== 0">
|
||||
<el-table :data="viewData.conJoinList" border>
|
||||
<el-table-column prop="proposalCode" label="提案编号"></el-table-column>
|
||||
<el-table-column prop="username" label="提案人"></el-table-column>
|
||||
<el-table-column prop="proposalName" label="提案名称">
|
||||
<template slot-scope="{row}">
|
||||
<span @click="openView(row.id)"
|
||||
style="color: #236eb4; cursor: pointer; text-decoration: underline">{{ row.proposalName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="附议信息" name="2" v-if="viewData.seconded">
|
||||
<el-table :data="viewData.seconded" border>
|
||||
<el-table-column prop="username" label="姓名"></el-table-column>
|
||||
<el-table-column prop="unitname" label="单位"></el-table-column>
|
||||
<el-table-column label="邀请时间" prop="inviteTime">
|
||||
<template slot-scope="{row}">
|
||||
{{ row.inviteTime }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="secondedTime" label="附议时间"></el-table-column>
|
||||
<el-table-column prop="isAgree" label="附议结果">
|
||||
<template slot-scope="{row}">
|
||||
<template v-if="row.isAgree==null">
|
||||
<span class="text-muted">未附议</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<span v-if="row.isAgree" class="text-success">同意</span>
|
||||
<span v-else class="text-danger">拒绝</span>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" align="center" prop="signData" label="附议人签字">
|
||||
<template slot-scope="{row}">
|
||||
<el-image class="item-sign" :src="row.signData" fit="contain" v-if="row.signData"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="团长审核" name="3" v-if="viewData.delegationAudit&&viewData.delegationAudit.length>0">
|
||||
<el-descriptions border>
|
||||
<template v-for="(o,i) in viewData.delegationAudit">
|
||||
<el-descriptions-item label="审核人">{{ o.username + '-' + o.loginName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">
|
||||
{{ o.flag ? '通过' : '退回' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="审核意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="团长签字">
|
||||
<template>
|
||||
<image class="item-sign" :src="o.auditSign " fit="contain" v-if="o.auditSign"></image>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane v-if="viewData.caseAuditId && viewData.caseAudit" label="提案委员会立案" name="5">
|
||||
<template v-for="(o,i) in viewData.caseAudit">
|
||||
<el-descriptions border :column="3">
|
||||
<el-descriptions-item label="审核人">
|
||||
{{ o.username + '-' + o.loginName }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="立案结果">
|
||||
{{ viewData.resultName ? viewData.resultName : '暂无' }}
|
||||
<!– {{ viewData.determineTypeCode ? '(' + viewData.laLevelName + ')' : '' }}–>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="审核结果">
|
||||
{{ o.flag ? '通过' : '退回修改' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item v-if="hostUnit!=''" label="承办单位" span="3">
|
||||
{{ hostUnit }}(主办)
|
||||
<template v-if="helpUnit&&helpUnit.length>0">
|
||||
,{{ helpUnit }}(协办)
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- <el-descriptions-item label="承办单位" span="3" v-if="hostUnit!=''">
|
||||
{{ hostUnit }}(主办),
|
||||
{{ helpUnit }}(协办)
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewData.resultCode!=='notGive'" label="承办单位" span="3">
|
||||
<template v-for="(item,index) in viewData.undertake">
|
||||
{{ item.unitName }}
|
||||
({{ item.undertakeType === 1 ? '主办' : '协办' }})
|
||||
{{ index + 1 === viewData.undertake.length ? '' : '、' }}
|
||||
</template>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="审核意见" span="3">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="3">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="承办单位初步意见" name="6"
|
||||
v-if="viewData.underTakeFirstOpinion&&viewData.underTakeFirstOpinion.length>0">
|
||||
<el-descriptions border>
|
||||
<template v-for="(o,i) in viewData.underTakeFirstOpinion">
|
||||
<el-descriptions-item label="承办单位">{{ o.underTakeName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="时间">{{ o.opionTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">
|
||||
{{ o.canTake ? '可以承办' : '无法承办' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="意见">{{ o.opinion }}</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="附议信息" name="2" v-if="viewData.seconded">
|
||||
<el-table :data="viewData.seconded" border>
|
||||
<el-table-column prop="username" label="姓名"></el-table-column>
|
||||
<el-table-column prop="unitname" label="单位"></el-table-column>
|
||||
<el-table-column label="邀请时间" prop="inviteTime">
|
||||
<template slot-scope="{row}">
|
||||
{{ row.inviteTime }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="secondedTime" label="附议时间"></el-table-column>
|
||||
<el-table-column prop="isAgree" label="附议结果">
|
||||
<template slot-scope="{row}">
|
||||
<template v-if="row.isAgree==null">
|
||||
<span class="text-muted">未附议</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<span v-if="row.isAgree" class="text-success">同意</span>
|
||||
<span v-else class="text-danger">拒绝</span>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" align="center" prop="signData" label="附议人签字">
|
||||
<template slot-scope="{row}">
|
||||
<el-image class="item-sign" :src="row.signData" fit="contain" v-if="row.signData"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="委员会确认承办单位" name="10" v-if="viewData.caseUnitAuditId && viewData.caseUnitAudit">
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item label="审核人">
|
||||
{{ viewData.caseUnitAudit.username + '-' + viewData.caseUnitAudit.loginName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">{{ viewData.resultName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ viewData.caseUnitAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="承办单位" span="3" v-if="viewData.resultCode!=='notGive'">
|
||||
<template v-for="(item,index) in viewData.undertake">
|
||||
{{ item.unitName }}
|
||||
({{ item.undertakeType === 1 ? '主办' : '协办' }})
|
||||
{{ index + 1 === viewData.undertake.length ? '' : '、' }}
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" span="3">{{ viewData.caseUnitAudit.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="3">
|
||||
<el-image v-if="viewData.caseUnitAudit.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="viewData.caseUnitAudit.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="团长审核" name="3" v-if="viewData.delegationAudit&&viewData.delegationAudit.length>0">
|
||||
<el-descriptions border>
|
||||
<template v-for="(o,i) in viewData.delegationAudit">
|
||||
<el-descriptions-item label="审核人">{{ o.username + "-" + o.loginName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">
|
||||
{{ o.flag ? "通过" : "退回" }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="审核意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="团长签字">
|
||||
<template>
|
||||
<image class="item-sign" :src="o.auditSign " fit="contain" v-if="o.auditSign"></image>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分管校领导批示" name="8"
|
||||
v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">
|
||||
<template v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">
|
||||
<el-descriptions :column="2" border class="wrap-table">
|
||||
<template v-for="(o,i) in viewData.branchLeaderOpinion">
|
||||
<el-descriptions-item label="审批人">{{ o.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="审批意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="分管校领导签字">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="承办单位办理" name="11"
|
||||
v-if="viewData.replyInfo && viewData.replyInfo.length>0 && viewData.replyInfo.some(v=>v.isReply || v.leaderCheckResult!=null)">
|
||||
<el-descriptions border class="wrap-table-4" column="5">
|
||||
<template v-for="(o,i) in viewData.replyInfo.filter(v=>v.isReply || v.leaderCheckResult!=null)">
|
||||
<el-descriptions-item label="承办单位">{{
|
||||
o.unitName
|
||||
}}({{ o.undertakeType === 1 ? '主办' : '协办' }})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理人">{{ o.dfrUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ o.replyTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理次数">{{ o.replyNumber }}</el-descriptions-item>
|
||||
<el-descriptions-item label="落实情况">{{ o.implementState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理内容" span="5">
|
||||
<div class="text-left" v-html="o.replyContent"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="承办单位签字" span="5">
|
||||
<el-image v-if="o.replySignData"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.replySignData"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附件" span="5">
|
||||
<file-upload v-if="JSON.parse(o.replyFiles)&&JSON.parse(o.replyFiles).length"
|
||||
:files="JSON.parse(o.replyFiles)" :view="true"></file-upload>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="反馈评分信息" name="13" v-if="viewData.feedback&&viewData.feedback.length>0">
|
||||
<el-descriptions border column="4">
|
||||
<template v-for="(o,i) in viewData.feedback">
|
||||
<el-descriptions-item label="反馈人">{{ o.username }}({{ o.loginname }})</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈时间">{{ o.feedbackTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈次数">{{ o.feedbackNumber }}</el-descriptions-item>
|
||||
<el-descriptions-item label="对办理结果评价">{{ o.feedbackResult }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="对承办单位办理态度评价">{{ o.feedbackCodeByUnderTake }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="反馈意见" span="5">
|
||||
<div class="text-left" v-html="o.feedbackOpinion"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈人签字" span="4">
|
||||
<el-image v-if="o.scoreSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.scoreSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分管校领导审批" name="14"
|
||||
v-if="viewData.branchLeaderSuffixAuditOpinion && viewData.branchLeaderSuffixAuditOpinion.length>0">
|
||||
<template v-if="viewData.branchLeaderSuffixAuditOpinion && viewData.branchLeaderSuffixAuditOpinion.length>0">
|
||||
<el-descriptions :column="2" border class="wrap-table">
|
||||
<template v-for="(o,i) in viewData.branchLeaderSuffixAuditOpinion">
|
||||
<el-descriptions-item label="审批人">{{ o.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="审批意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="分管校领导签字">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="提案工作组意见" name="4"
|
||||
v-if="viewData.membersOpinions && viewData.membersOpinions.length>0">
|
||||
<template v-for="(o,i) in viewData.membersOpinions">
|
||||
<el-descriptions border :column="3">
|
||||
<el-descriptions-item label="审核人">
|
||||
{{ o.username + "-" + o.loginName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="立案意见">
|
||||
{{ o.dictName || "暂无" }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" span="3">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="3">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
<el-tab-pane v-if="handle" :label="label" name="999">
|
||||
<slot name="handle"></slot>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="viewData.caseAuditId && viewData.caseAudit" label="提案工作组立案审核" name="5">
|
||||
<template v-for="(o,i) in viewData.caseAudit">
|
||||
<el-descriptions border :column="3">
|
||||
<el-descriptions-item label="审核人">
|
||||
{{ o.username + "-" + o.loginName }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="立案结果">
|
||||
{{ viewData.resultName ? viewData.resultName : '暂无' }}
|
||||
<!– {{ viewData.determineTypeCode ? '(' + viewData.laLevelName + ')' : '' }}–>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="审核结果">
|
||||
{{ o.flag ? "通过" : "退回修改" }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item v-if="hostUnit!=''" label="承办单位" span="3">
|
||||
{{ hostUnit }}(主办)
|
||||
<template v-if="helpUnit&&helpUnit.length>0">
|
||||
,{{ helpUnit }}(协办)
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- <el-descriptions-item label="承办单位" span="3" v-if="hostUnit!=''">
|
||||
{{ hostUnit }}(主办),
|
||||
{{ helpUnit }}(协办)
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewData.resultCode!=='notGive'" label="承办单位" span="3">
|
||||
<template v-for="(item,index) in viewData.undertake">
|
||||
{{ item.unitName }}
|
||||
({{ item.undertakeType === 1 ? '主办' : '协办' }})
|
||||
{{ index + 1 === viewData.undertake.length ? '' : '、' }}
|
||||
</template>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="审核意见" span="3">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="3">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="承办单位意见" name="6"
|
||||
v-if="viewData.underTakeFirstOpinion&&viewData.underTakeFirstOpinion.length>0">
|
||||
<el-descriptions border>
|
||||
<template v-for="(o,i) in viewData.underTakeFirstOpinion">
|
||||
<el-descriptions-item label="承办单位">{{ o.underTakeName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="时间">{{ o.opionTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">
|
||||
<el-tag v-if="o.canTake">同意承办</el-tag>
|
||||
<el-tag v-else type="danger">无法承办</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3" label="意见">{{ o.opinion }}</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="提案工作组确认承办单位" name="10" v-if="viewData.caseUnitAuditId && viewData.caseUnitAudit">
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item label="审核人">
|
||||
{{ viewData.caseUnitAudit.username + "-" + viewData.caseUnitAudit.loginName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核结果">{{ viewData.resultName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ viewData.caseUnitAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="承办单位" span="3" v-if="viewData.resultCode!=='notGive'">
|
||||
<template v-for="(item,index) in viewData.undertake">
|
||||
{{ item.unitName }}
|
||||
({{ item.undertakeType === 1 ? "主办" : "协办" }})
|
||||
{{ index + 1 === viewData.undertake.length ? "" : "、" }}
|
||||
</template>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" span="3">{{ viewData.caseUnitAudit.opinion }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="3">
|
||||
<el-image v-if="viewData.caseUnitAudit.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="viewData.caseUnitAudit.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分管校领导批示" name="8" v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">
|
||||
{{ viewData.branchLeaderOpinion }}
|
||||
<template v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">
|
||||
<el-descriptions :column="2" border class="wrap-table">
|
||||
<template v-for="(o,i) in viewData.branchLeaderOpinion">
|
||||
<el-descriptions-item label="审批人">{{ o.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="审批意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="分管校领导签字">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="承办单位办理" name="11"
|
||||
v-if="viewData.replyInfo && viewData.replyInfo.length>0 && viewData.replyInfo.some(v=>v.isReply || v.leaderCheckResult!=null)">
|
||||
<template v-for="(o,i) in viewData.replyInfo.filter(v=>v.isReply || v.leaderCheckResult!=null)">
|
||||
<el-descriptions border column="3" style="margin-top: 10px">
|
||||
<el-descriptions-item label="承办单位">{{
|
||||
o.unitName
|
||||
}}({{ o.undertakeType === 1 ? "主办" : "协办" }})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理人">{{ o.dfrUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ o.replyTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理次数">{{ o.replyNumber }}</el-descriptions-item>
|
||||
<el-descriptions-item label="落实情况" span="2">{{ o.implementState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理内容" span="3">
|
||||
<div class="text-left" v-html="o.replyContent"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="承办单位签字" span="3">
|
||||
<el-image v-if="o.replySignData"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.replySignData"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附件" span="3">
|
||||
<file-upload v-if="JSON.parse(o.replyFiles)&&JSON.parse(o.replyFiles).length"
|
||||
:files="JSON.parse(o.replyFiles)" :view="true"></file-upload>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分管校领导审批" name="14"
|
||||
v-if="viewData.branchLeaderSuffixAuditOpinion && viewData.branchLeaderSuffixAuditOpinion.length>0">
|
||||
<template
|
||||
v-if="viewData.branchLeaderSuffixAuditOpinion && viewData.branchLeaderSuffixAuditOpinion.length>0">
|
||||
<el-descriptions :column="2" border class="wrap-table">
|
||||
<template v-for="(o,i) in viewData.branchLeaderSuffixAuditOpinion">
|
||||
<el-descriptions-item label="审批人">{{ o.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">{{ o.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="审批意见">{{ o.opinion }}</el-descriptions-item>
|
||||
<el-descriptions-item span="4" label="分管校领导签字">
|
||||
<el-image v-if="o.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="反馈评分信息" name="13" v-if="viewData.feedback&&viewData.feedback.length>0">
|
||||
<el-descriptions border column="4">
|
||||
<template v-for="(o,i) in viewData.feedback">
|
||||
<el-descriptions-item label="反馈人">{{ o.username }}({{ o.loginname }})</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈时间">{{ o.feedbackTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈次数">{{ o.feedbackNumber }}</el-descriptions-item>
|
||||
<el-descriptions-item label="对办理结果评价">{{ o.feedbackResult }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="对承办单位办理态度评价">{{ o.feedbackCodeByUnderTake }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="反馈意见" span="5">
|
||||
<div class="text-left" v-html="o.feedbackOpinion"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈人签字" span="4">
|
||||
<el-image v-if="o.scoreSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="o.scoreSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
</el-tabs>
|
||||
<el-tab-pane v-if="handle" :label="label" name="999">
|
||||
<slot name="handle"></slot>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
module.exports = {
|
||||
props: {
|
||||
id: String,
|
||||
handle: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '审核'
|
||||
},
|
||||
panes: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hostUnit: '',
|
||||
helpUnit: [],
|
||||
unitOptions: [],
|
||||
activeName: '1',
|
||||
activeCollapse: '',
|
||||
loading: true,
|
||||
viewData: {},
|
||||
config: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
},
|
||||
methods: {
|
||||
hasPane(name) {
|
||||
if (!this.handle) {
|
||||
return true
|
||||
}
|
||||
return this.panes.includes(name)
|
||||
},
|
||||
async openView(id) {
|
||||
this.loading = true
|
||||
this.viewData = await proposal.getProposalInfo(id)
|
||||
|
||||
console.log(this.viewData)
|
||||
|
||||
if (!this.viewData) {
|
||||
this.$notify.error({title: '失败', message: '获取提案信息失败'});
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
|
||||
const {files, feedback, caseAudit, resultCode} = this.viewData
|
||||
this.helpUnit = []
|
||||
if (caseAudit != null && resultCode !== "notGive" && caseAudit.other != null) {
|
||||
const other = JSON.parse(caseAudit.other)
|
||||
if (this.unitOptions.find(v => v.id === other.hostUnit)) {
|
||||
this.hostUnit = this.unitOptions.find(v => v.id === other.hostUnit).unitName
|
||||
if (other.helpUnit && other.helpUnit.length > 0) {
|
||||
other.helpUnit.forEach((v, i) => {
|
||||
const helpUnit = this.unitOptions.find(z => other.helpUnit[i] === z.id).unitName
|
||||
this.helpUnit.push(helpUnit)
|
||||
})
|
||||
this.helpUnit = this.helpUnit.join('、')
|
||||
}
|
||||
props: {
|
||||
id: String,
|
||||
handle: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: "审核"
|
||||
},
|
||||
panes: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hostUnit: "",
|
||||
helpUnit: [],
|
||||
unitOptions: [],
|
||||
activeName: "1",
|
||||
activeCollapse: "",
|
||||
loading: true,
|
||||
viewData: {},
|
||||
config: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"file-upload": httpVueLoader("/components/plugins/FileUpload.vue")
|
||||
},
|
||||
methods: {
|
||||
hasPane(name) {
|
||||
if (!this.handle) {
|
||||
return true
|
||||
}
|
||||
return this.panes.includes(name)
|
||||
},
|
||||
async openView(id) {
|
||||
this.loading = true
|
||||
this.viewData = await proposal.getProposalInfo(id)
|
||||
|
||||
}
|
||||
console.log(this.viewData)
|
||||
|
||||
if (files) {
|
||||
this.viewData.files = JSON.parse(files)
|
||||
}
|
||||
if (!this.viewData) {
|
||||
this.$notify.error({ title: "失败", message: "获取提案信息失败" })
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
|
||||
if (feedback) {
|
||||
this.viewData.feedback.map(v => {
|
||||
v.files = JSON.parse(v.files)
|
||||
})
|
||||
}
|
||||
const { files, feedback, caseAudit, resultCode } = this.viewData
|
||||
this.helpUnit = []
|
||||
if (caseAudit != null && resultCode !== "notGive" && caseAudit.other != null) {
|
||||
const other = JSON.parse(caseAudit.other)
|
||||
if (this.unitOptions.find(v => v.id === other.hostUnit)) {
|
||||
this.hostUnit = this.unitOptions.find(v => v.id === other.hostUnit).unitName
|
||||
if (other.helpUnit && other.helpUnit.length > 0) {
|
||||
other.helpUnit.forEach((v, i) => {
|
||||
const helpUnit = this.unitOptions.find(z => other.helpUnit[i] === z.id).unitName
|
||||
this.helpUnit.push(helpUnit)
|
||||
})
|
||||
this.helpUnit = this.helpUnit.join("、")
|
||||
}
|
||||
}
|
||||
|
||||
this.activeName = this.handle ? "999" : "1"
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
if (files) {
|
||||
this.viewData.files = JSON.parse(files)
|
||||
}
|
||||
|
||||
if (feedback) {
|
||||
this.viewData.feedback.map(v => {
|
||||
v.files = JSON.parse(v.files)
|
||||
})
|
||||
}
|
||||
|
||||
this.activeName = this.handle ? "999" : "1"
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.config = await proposal.getProposalConfig()
|
||||
this.unitOptions = await proposal.getProposalUndertake()
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.config = await proposal.getProposalConfig()
|
||||
this.unitOptions = await proposal.getProposalUndertake()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.el-descriptions__table {
|
||||
table-layout: fixed !important;
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
|
||||
.el-descriptions-item__cell {
|
||||
text-align: center !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
|
||||
.item-center {
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
margin-right: 110px;
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
margin-right: 110px;
|
||||
}
|
||||
|
||||
.item-center .el-form-item__content {
|
||||
font-size: 18px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.item-sign {
|
||||
width: 200px;
|
||||
height: 130px;
|
||||
width: 200px;
|
||||
height: 130px;
|
||||
}
|
||||
|
||||
.item-form {
|
||||
padding: 0 25px;
|
||||
padding: 0 25px;
|
||||
}
|
||||
|
||||
.el-collapse-item__wrap {
|
||||
padding: 10px 10px;
|
||||
padding: 10px 10px;
|
||||
}
|
||||
|
||||
.el-collapse-item__header {
|
||||
border-bottom: 1px solid #eee;
|
||||
font-weight: 700;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.item-number {
|
||||
color: red;
|
||||
font-weight: 600
|
||||
color: red;
|
||||
font-weight: 600
|
||||
}
|
||||
|
||||
.el-collapse-item__header {
|
||||
position: relative;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.el-collapse-item__arrow {
|
||||
color: #1582dc;
|
||||
font-weight: 800 !important;
|
||||
color: #1582dc;
|
||||
font-weight: 800 !important;
|
||||
}
|
||||
|
||||
/*.el-tabs__header{*/
|
||||
@@ -475,15 +504,15 @@ module.exports = {
|
||||
/*}*/
|
||||
|
||||
.wrap-table tbody:nth-child(3n+3):after {
|
||||
content: '';
|
||||
display: block;
|
||||
height: 15px;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
.wrap-table-4 tbody:nth-child(4n+4):after {
|
||||
content: '';
|
||||
display: block;
|
||||
height: 15px;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div>
|
||||
|
||||
<template name="提案基本信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
提案基本信息
|
||||
</div>
|
||||
@@ -69,7 +69,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.seconded" name="附议信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
附议信息
|
||||
</div>
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
|
||||
<template v-if="viewData.delegationAudit&&viewData.delegationAudit.length>0" name="团长审核信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
团长审核信息
|
||||
</div>
|
||||
@@ -106,7 +106,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.secretaryAudit&&viewData.secretaryAudit.length>0" name="提案委员会立案信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
提案委员会立案信息
|
||||
</div>
|
||||
@@ -129,8 +129,8 @@
|
||||
</van-cell-group>
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.caseAudit" name="确认承办单位">
|
||||
<div class="van-cell-group__title">
|
||||
<template v-if="viewData.caseAudit && viewData.caseAudit.length > 0" name="确认承办单位">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
确认承办单位
|
||||
</div>
|
||||
@@ -153,7 +153,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.makeLeader" name="分管校领导批示信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
分管校领导批示信息
|
||||
</div>
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
<template v-if="viewData.replyInfo && viewData.replyInfo.length>0 && viewData.replyInfo.some(v=>v.isReply)"
|
||||
name="承办单位答复">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
承办单位答复信息
|
||||
</div>
|
||||
@@ -212,7 +212,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.feedback&&viewData.feedback.length>0" name="反馈评分信息">
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-cell-group__title" style="padding: 5px 0 0 0 !important;">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
反馈评分信息
|
||||
</div>
|
||||
@@ -381,4 +381,4 @@ module.exports = {
|
||||
left: 5px !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -81,8 +81,8 @@ module.exports = {
|
||||
clearInterval(signatureInterval)
|
||||
const ts = new Date().getTime() + (Math.floor(Math.random() * (1000 - 1 + 1)) + 1).toString()
|
||||
console.log(ts)
|
||||
this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
|
||||
// this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
|
||||
// this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
|
||||
this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
|
||||
|
||||
this.showQrCode = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user