commit
This commit is contained in:
@@ -32,7 +32,7 @@ function include() {
|
||||
/**
|
||||
* 提案
|
||||
*/
|
||||
inputScript("/assets/platform/module/proposal/common.js?v=1.0.0")
|
||||
inputScript("/assets/platform/module/proposal/common.js?v=1.0.1")
|
||||
|
||||
/**
|
||||
* 提案api
|
||||
@@ -67,4 +67,4 @@ function include() {
|
||||
|
||||
}
|
||||
|
||||
include()
|
||||
include()
|
||||
|
||||
@@ -11,7 +11,8 @@ window.proposal = {
|
||||
|
||||
LEADERAUDIT: 500,
|
||||
UNITREPLY: 500,
|
||||
FEEDBACKSCORE: 600,
|
||||
// FEEDBACKSCORE: 600,
|
||||
FEEDBACKSCORE: 800,
|
||||
FINISH: 900,
|
||||
|
||||
//开启的状态
|
||||
@@ -193,4 +194,4 @@ window.proposal = {
|
||||
const {data} = await $.get("/platform/proposal/common/getProposalPrevNode", {stateCode})
|
||||
return data
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -406,7 +406,7 @@ ol,ul {
|
||||
left: 0;
|
||||
width: 4px;
|
||||
height: 16px;
|
||||
background-color: #ee0a24;
|
||||
background-color: #1867b0;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
content: ''
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
<script src="${base!}/assets/platform/module/mixins/initTableMixins.js?v=1.0.3"></script>
|
||||
<script src="${base!}/assets/platform/module/mixins/styleMixin.js"></script>
|
||||
<script src="${base!}/assets/platform/js/includeModel.js?v=1.0.5"></script>
|
||||
<script src="${base!}/assets/platform/js/includeModel.js?v=1.0.6"></script>
|
||||
<script src="${base!}/assets/platform/js/component.js?v=1.0.2"></script>
|
||||
<script src="${base!}/assets/platform/js/v.js?v=1.0.5"></script>
|
||||
<script src="${base!}/assets/platform/plugins/wangeditor/wangEditor.js"></script>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
|
||||
<script src="${base!}/assets/platform/module/mixins/initTableMixins.js?v=1.0.3"></script>
|
||||
<script src="${base!}/assets/platform/js/includeModel.js?v=1.0.5"></script>
|
||||
<script src="${base!}/assets/platform/js/includeModel.js?v=1.0.6"></script>
|
||||
<script src="${base!}/assets/platform/js/component.js?v=1.0.2"></script>
|
||||
<script src="${base!}/assets/platform/js/v.js?v=1.0.5"></script>
|
||||
<script src="${base!}/assets/platform/plugins/wangeditor/wangEditor.js"></script>
|
||||
|
||||
@@ -15,6 +15,7 @@ layout("/mobile/platform.html"){
|
||||
max-width: 100%;
|
||||
height: calc(100vh - 46px - 44px);
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.remark-content *{
|
||||
|
||||
@@ -15,6 +15,7 @@ layout("/mobile/platform.html"){
|
||||
max-width: 100%;
|
||||
height: calc(100vh - 46px - 44px);
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.remark-content *{
|
||||
@@ -58,6 +59,14 @@ layout("/mobile/platform.html"){
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
<div v-else style="margin: 20px 20px 10px 20px">
|
||||
<van-button color="red" disabled
|
||||
block style="border-radius: 10px"
|
||||
type="info">
|
||||
报名已结束
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
<!--<div style="margin: 20px 20px 10px 20px"
|
||||
v-if="isRegister && moment().valueOf() < moment(o.endTime).valueOf() && moment().valueOf() > moment(o.startTime).valueOf()">
|
||||
<van-button
|
||||
|
||||
@@ -45,6 +45,7 @@ layout("/mobile/platform.html"){
|
||||
max-width: 100%;
|
||||
height: calc(100vh - 46px - 44px);
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.remark-content *{
|
||||
@@ -135,6 +136,13 @@ layout("/mobile/platform.html"){
|
||||
<van-button @click="doCancel" block color="red" style="border-radius: 10px; margin-top: 10px" type="info">取消报名</van-button>
|
||||
</template>
|
||||
</div>
|
||||
<div v-else style="margin: 20px 20px 10px 20px">
|
||||
<van-button color="red" disabled
|
||||
block style="border-radius: 10px"
|
||||
type="info">
|
||||
报名已结束
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
<van-popup class="joinPopup" position="right" v-model:show="showActivityInfoPopup">
|
||||
<van-nav-bar @click-left="showActivityInfoPopup = false" fixed left-arrow placeholder title="活动内容"></van-nav-bar>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<link rel="stylesheet" href="${base!}/assets/mobile/css/theme.css">
|
||||
<link rel="stylesheet" href="${base!}/assets/mobile/css/main.css">
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/vant/vant.css">
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/vant/vant.css?v=1.0.1">
|
||||
|
||||
<script>
|
||||
window._AMapSecurityConfig = {
|
||||
|
||||
@@ -15,7 +15,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
></van-nav-bar>
|
||||
<van-dropdown-menu>
|
||||
<van-dropdown-item v-model="pageForm.sessionId" :options="sessionList"
|
||||
@@ -203,4 +203,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -12,11 +12,11 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
safe-area-inset-top
|
||||
></van-nav-bar>
|
||||
|
||||
<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>
|
||||
@@ -32,7 +32,7 @@ layout("/mobile/platform.html"){
|
||||
<van-cell title="职称">{{ viewData.zc }}</van-cell>
|
||||
<van-cell title="职务">{{ viewData.zw }}</van-cell>
|
||||
</van-cell-group>
|
||||
<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>
|
||||
@@ -79,4 +79,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -15,7 +15,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
safe-area-inset-top
|
||||
></van-nav-bar>
|
||||
<div class="search-fixed">
|
||||
@@ -141,4 +141,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -3,11 +3,11 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="团长审核" fixed placeholder safe-area-inset-top @click-left="history.back()"
|
||||
<van-nav-bar title="团长审核" fixed placeholder safe-area-inset-top @click-left="pjaxReplace('/mobile/index')"
|
||||
:left-arrow="leftArrow"></van-nav-bar>
|
||||
<proposal-info :proposal_id="proposalId" title="团长审核" :handle="handle" ref="info">
|
||||
<template #handle>
|
||||
<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>
|
||||
@@ -134,4 +134,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -43,7 +43,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
|
||||
@@ -78,7 +78,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
safe-area-inset-top
|
||||
></van-nav-bar>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="提案信息" fixed placeholder :left-arrow="leftArrow" safe-area-inset-top
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
@click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<proposal-info :proposal_id="proposalId" ref="pi"></proposal-info>
|
||||
</div>
|
||||
|
||||
@@ -39,4 +39,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -12,7 +12,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
|
||||
@@ -3,11 +3,11 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="附议提案" fixed placeholder :left-arrow="leftArrow" safe-area-inset-top
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
@click-left="pjaxReplace('/mobile/proposal/seconded')"></van-nav-bar>
|
||||
<proposal-info :proposal_id="proposalId" ref="pi"></proposal-info>
|
||||
|
||||
<van-row v-if="secondedInfo.isAgree==null">
|
||||
<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>
|
||||
@@ -59,18 +59,16 @@ layout("/mobile/platform.html"){
|
||||
proposalId: this.proposalId,
|
||||
flag: flag
|
||||
})
|
||||
|
||||
if (resp.code === 0) {
|
||||
setTimeout(async () => {
|
||||
loading.type = 'success'
|
||||
loading.message = '提交成功'
|
||||
loading.close()
|
||||
this.$refs.pi.openView(this.proposalId)
|
||||
this.getSecondedCount()
|
||||
this.$toast.success("操作成功")
|
||||
}, 1200)
|
||||
} else {
|
||||
loading.type = 'fail'
|
||||
loading.message = '提交失败,请联系管理员'
|
||||
loading.close()
|
||||
this.$toast.fail("操作失败,请及时联系管理员")
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -43,7 +43,7 @@ layout("/mobile/platform.html"){
|
||||
left-arrow
|
||||
placeholder
|
||||
fixed
|
||||
@click-left="history.back()"
|
||||
@click-left="pjaxReplace('/mobile/index')"
|
||||
></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
|
||||
@@ -7,7 +7,7 @@ layout("/mobile/platform.html"){
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder
|
||||
<van-nav-bar @click-left="pjaxReplace('/mobile/index')" fixed left-arrow placeholder
|
||||
title="撰写提案"></van-nav-bar>
|
||||
<van-form :show-error-message="false" input-align="right" ref="addForm">
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@ layout("/mobile/platform.html"){
|
||||
<van-image :src="FILE_STREAM_PREVIEW_ADDRESS+'?id='+option.imgUrl"
|
||||
fit="contain"
|
||||
style="width: 100px;height: 100px;border-radius: 10px"></van-image>
|
||||
<span style="position: absolute; bottom: 0;left: 10px;right: 10px;height: 20px;background: rgb(0 0 0 / 50%);text-align:center;color: #FFF;">{{option.selectCount}}人已选</span>
|
||||
<!--<span style="position: absolute; bottom: 0;left: 10px;right: 10px;height: 20px;background: rgb(0 0 0 / 50%);text-align:center;color: #FFF;">{{option.selectCount}}人已选</span>-->
|
||||
<!-- @click="vant.ImagePreview([CREATE_PREVIEW_URL(option.imgUrl)])"-->
|
||||
</div>
|
||||
|
||||
@@ -355,9 +355,26 @@ layout("/mobile/platform.html"){
|
||||
desc=""
|
||||
style="border-radius: 8px;background: #FFFFFF"
|
||||
:thumb="FILE_STREAM_PREVIEW_ADDRESS+'?id='+item.imgUrl"
|
||||
v-for="item in selectedOptions"
|
||||
></van-card>
|
||||
v-for="(item,index) in selectedOptions"
|
||||
>
|
||||
<template #price>
|
||||
<span v-if="item.specs && item.specs.length > 0" style="font-size: 15px;color: #0a84ff"
|
||||
@click="openSelectSpecs(item)">
|
||||
{{ item.selectSpecs ? ('规格:' + item.selectSpecs) : '点我选择规格参数' }}
|
||||
</span>
|
||||
</template>
|
||||
</van-card>
|
||||
</van-cell>
|
||||
|
||||
<van-popup v-model="selectSpecsPopup" position="bottom">
|
||||
<van-picker
|
||||
title="规格选择"
|
||||
show-toolbar
|
||||
:columns="specsPickerOptions"
|
||||
@confirm="specsSelectConfirm"
|
||||
@cancel="selectSpecsPopup = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
</div>
|
||||
|
||||
<!--邮寄到家 填写收货地址-->
|
||||
@@ -427,7 +444,12 @@ layout("/mobile/platform.html"){
|
||||
descPopup: false,
|
||||
signData: null,
|
||||
|
||||
clickUpOrDown: false
|
||||
clickUpOrDown: false,
|
||||
|
||||
// 选择规格相关
|
||||
selectSpecsPopup: false,
|
||||
specsPickerOptions: [],
|
||||
selectedOptionsId: null,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -490,6 +512,32 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 选择规格
|
||||
* @param item
|
||||
*/
|
||||
openSelectSpecs(item) {
|
||||
this.specsPickerOptions = []
|
||||
this.selectedOptionsId = item.id
|
||||
if (item.specs && item.specs.length > 0) {
|
||||
this.specsPickerOptions = item.specs.map(v => {
|
||||
return {text: v.value, value: v.value}
|
||||
})
|
||||
}
|
||||
this.selectSpecsPopup = true
|
||||
},
|
||||
specsSelectConfirm(value) {
|
||||
debugger
|
||||
this.selectSpecsPopup = false
|
||||
if (value) {
|
||||
this.projectInfo.welfareProjectSubjects[0].options.forEach(v => {
|
||||
if (v.id === this.selectedOptionsId) {
|
||||
v.selectSpecs = value.value
|
||||
}
|
||||
})
|
||||
// this.projectInfo.welfareProjectSubjects[0].options[this.selectedOptionsIndex].selectSpecs = value.value
|
||||
}
|
||||
},
|
||||
editAddress(item) {
|
||||
pjaxReplace('/mobile/welfare/mine/addressEdit?projectId=' + this.projectId + '&id=' + item.id)
|
||||
window.sessionStorage.setItem('welfareProjectId', this.projectId)
|
||||
@@ -629,14 +677,29 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
}
|
||||
|
||||
const formData = this.projectInfo.welfareProjectSubjects[0].options.filter(v => v.selectNum >= 1).map(v => {
|
||||
const options = this.projectInfo.welfareProjectSubjects[0].options.filter(v => v.selectNum >= 1)
|
||||
|
||||
for (const option of options) {
|
||||
// 检查是否有 specs
|
||||
if (option.specs) {
|
||||
// 检查 selectSpecs 是否为空或未定义
|
||||
if (!option.selectSpecs) {
|
||||
this.$toast.fail('请选择' + option.optionName + '的规格')
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const formData = options.map(v => {
|
||||
return {
|
||||
welfareId: this.projectId,
|
||||
subjectId: v.subjectId,
|
||||
selectOptionId: v.id,
|
||||
receiveAddress: this.selectAddress,
|
||||
userSign: this.signData,
|
||||
selectNum: v.selectNum
|
||||
selectNum: v.selectNum,
|
||||
selectSpecs: v.selectSpecs
|
||||
}
|
||||
})
|
||||
const {
|
||||
@@ -655,7 +718,7 @@ layout("/mobile/platform.html"){
|
||||
} else {
|
||||
vant.Dialog.alert({
|
||||
title: '温馨提示',
|
||||
message: "您已完成本次福利选择。",
|
||||
message: "您已完成本次选择。",
|
||||
}).then(async () => {
|
||||
this.confirmPopup = false
|
||||
await this.getProjectInfo()
|
||||
@@ -739,6 +802,9 @@ layout("/mobile/platform.html"){
|
||||
if (option) {
|
||||
v.selectNum = option.selectNum
|
||||
selectNum = Number(selectNum) + Number(v.selectNum)
|
||||
if (option.selectSpecs) {
|
||||
v.selectSpecs = option.selectSpecs
|
||||
}
|
||||
}
|
||||
})
|
||||
this.selectNum = selectNum
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
v-for="item in activityGroupList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div>
|
||||
<div v-if="type !== 40003">
|
||||
<el-button
|
||||
@click="$refs.drawerUserScope.userScopeDialog = true"
|
||||
type="primary">设置
|
||||
@@ -688,6 +688,7 @@
|
||||
name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
projectTypeCode: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
signUpMethod: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
address: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
plannedDate: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
@@ -1137,7 +1138,11 @@
|
||||
},
|
||||
async getActivityGroup() {
|
||||
const resp = await $.get('/platform/activity/basic/scope/getActivityUserScopeGroup')
|
||||
this.activityGroupList = resp.data
|
||||
if (type === 40003) {
|
||||
this.activityGroupList = resp.data.filter(v => v.groupId === 6)
|
||||
} else {
|
||||
this.activityGroupList = resp.data
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
|
||||
@@ -144,13 +144,13 @@
|
||||
:disabled="row.projectTypeCode==50004">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'sendMsg',row}">
|
||||
<!--<el-dropdown-item v-if="row.state === 3" :command="{type:'sendMsg',row}">
|
||||
通知
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'openCode',row}">
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item v-if="row.state === 3" :command="{type:'openCode',row}">
|
||||
报名二维码
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'openSignCode',row}">
|
||||
<el-dropdown-item v-if="row.state === 3" :command="{type:'openSignCode',row}">
|
||||
签到二维码
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item :command="{type:'export',row}">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
name="viewport">
|
||||
<title>签字</title>
|
||||
<!-- 引入样式文件 -->
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/vant/vant.css">
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/vant/vant.css?v=1.0.1">
|
||||
<link href="https://res.wx.qq.com/open/libs/weui/2.2.0/weui.min.css" rel="stylesheet">
|
||||
<!-- 引入 Vue 和 Vant 的 JS 文件 -->
|
||||
<script src="${base!}/assets/platform/plugins/vue/vue.min.js"></script>
|
||||
|
||||
@@ -285,6 +285,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + '/pull')
|
||||
this.pullLoading = false
|
||||
if(resp.code===0){
|
||||
await this.getLatelyUpdateTimes()
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
|
||||
@@ -200,7 +200,7 @@ layout("/layouts/platform.html"){
|
||||
<el-button size="medium" type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="openCy()">
|
||||
设置委员
|
||||
设置提案工作组成员
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
@@ -224,9 +224,9 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="jdhallname" align="center" label="届次"></el-table-column>
|
||||
<el-table-column sortable prop="sf" label="身份">
|
||||
<template slot-scope="{row}">
|
||||
<span class="text-primary" v-if="row.sf===1">委员</span>
|
||||
<span v-if="row.sf===2" class="text-primary">副主任</span>
|
||||
<span v-if="row.sf===3" class="text-primary">主任</span>
|
||||
<span class="text-primary" v-if="row.sf===1">组长</span>
|
||||
<span v-if="row.sf===2" class="text-primary">副组长</span>
|
||||
<span v-if="row.sf===3" class="text-primary">组员</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" width="100px">
|
||||
@@ -242,15 +242,15 @@ layout("/layouts/platform.html"){
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="row.sf!==3"
|
||||
@click.native="updateSf(row,3)"
|
||||
class="text-primary">设置主任
|
||||
class="text-primary">设置组长
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="row.sf!==2"
|
||||
@click.native="updateSf(row,2)"
|
||||
class="text-primary">设置副主任
|
||||
class="text-primary">设置副组长
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="row.sf!==1"
|
||||
@click.native="updateSf(row,1)"
|
||||
class="text-primary">设置委员
|
||||
class="text-primary">设置组员
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
@@ -344,7 +344,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</guava>
|
||||
|
||||
<el-dialog :visible.sync="cyDialogVisible" title="设置委员" width="40%">
|
||||
<el-dialog :visible.sync="cyDialogVisible" title="设置提案工作组成员" width="40%">
|
||||
<el-form label-width="100px">
|
||||
<el-form-item prop="jdhallname" label="届次">
|
||||
<el-select v-model="pageForm.jdhid" disabled style="width: 100%">
|
||||
@@ -379,9 +379,9 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item prop="sf" label="身份">
|
||||
<el-radio-group v-model="cyFormData.sf">
|
||||
<el-radio-button label="1">委 员</el-radio-button>
|
||||
<el-radio-button label="2">副主任</el-radio-button>
|
||||
<el-radio-button label="3">主 任</el-radio-button>
|
||||
<el-radio-button label="1">组 长</el-radio-button>
|
||||
<el-radio-button label="2">副组长</el-radio-button>
|
||||
<el-radio-button label="3">组 员</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
@@ -50,11 +50,45 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_type" label="项目类型">
|
||||
<el-select v-model="formData.activity_type" placeholder="请选择项目" style="width: 100%"
|
||||
@change="getProjectCodeChange">
|
||||
<el-option
|
||||
v-for="item in activityType"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!--<el-col :span="12" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
<el-button @click="openView" type="primary">查看活动详细信息</el-button>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="user_name" label="申请人姓名">
|
||||
<el-input disabled v-model="formData.user_name" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="apply_time" label="申请时间">
|
||||
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="mobile" label="联系方式">
|
||||
<el-input v-model="formData.mobile" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<!--<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_id" label="活动名称">
|
||||
@@ -334,6 +368,9 @@ layout("/layouts/platform.html"){
|
||||
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
handleSelect(){
|
||||
|
||||
},
|
||||
openView() {
|
||||
this.activityDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
|
||||
@@ -91,7 +91,7 @@ const MEMBER_CHANGE = {
|
||||
<el-descriptions-item label="工作单位">
|
||||
<el-form-item prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择工作单位" style="width: 100%"
|
||||
:disabled="allowFields('unitId')" @change="getUnionName(formData.unitId)"
|
||||
:disabled="allowFields('unitId')" @change="getUnionName"
|
||||
v-model="formData.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
@@ -134,6 +134,14 @@ const MEMBER_CHANGE = {
|
||||
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="人员类型">
|
||||
<el-form-item prop="personType">
|
||||
<dict-select v-model="formData.personType" code="PERSON_TYPE"
|
||||
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
|
||||
<template v-if="formData.userState == '退休'">
|
||||
<el-descriptions-item label="退休日期">
|
||||
<el-form-item prop="retireDate">
|
||||
@@ -145,14 +153,19 @@ const MEMBER_CHANGE = {
|
||||
style="width: 100%"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="福利享受截止日期">
|
||||
<el-form-item prop="welfareStopDate">
|
||||
<el-date-picker v-model="formData.welfareStopDate"
|
||||
type="date"
|
||||
:disabled="isView"
|
||||
placeholder="请选择福利享受截止日期"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
</template>
|
||||
<el-descriptions-item label="人员类型">
|
||||
<el-form-item prop="personType">
|
||||
<dict-select v-model="formData.personType" code="PERSON_TYPE"
|
||||
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="formData.userState == null || formData.userState != '退休'"></el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="会员状态">
|
||||
<el-form-item prop="member">
|
||||
@@ -373,6 +386,10 @@ const MEMBER_CHANGE = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getUnionName(val){
|
||||
const data = this.units.find(v => v.id === val)
|
||||
this.$set(this.formData, 'unionName', data ? data.unionname : '')
|
||||
},
|
||||
allowFields(prop) {
|
||||
return !this.allowChangeFields.map(v => v.code).includes(prop)
|
||||
},
|
||||
|
||||
@@ -88,12 +88,12 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-label">人员性质:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.preparedBy"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
placeholder="人员性质"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -53,6 +53,12 @@ layout("/layouts/platform.html"){
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.monthStyle{
|
||||
.el-date-picker__header--bordered {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
@@ -181,7 +187,7 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" align="middle" class="query-row">
|
||||
<!--<el-row type="flex" align="middle" class="query-row">
|
||||
<el-col class="query-row-title">会员状态:</el-col>
|
||||
<el-col class="query-row-content">
|
||||
<el-tag
|
||||
@@ -204,7 +210,7 @@ layout("/layouts/platform.html"){
|
||||
type="success">全部
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-row>-->
|
||||
<el-row type="flex" align="middle" class="query-row">
|
||||
<el-col class="query-row-title">人员类型:</el-col>
|
||||
<el-col class="query-row-content">
|
||||
@@ -342,6 +348,15 @@ layout("/layouts/platform.html"){
|
||||
@change="determineEndDate"
|
||||
placeholder="选择结束日期">
|
||||
</el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="pageForm.birthMonth"
|
||||
popper-class="monthStyle"
|
||||
value-format="MM"
|
||||
format="MM"
|
||||
@change="doSearch"
|
||||
type="month"
|
||||
placeholder="请选择月度">
|
||||
</el-date-picker>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
@@ -573,6 +588,7 @@ layout("/layouts/platform.html"){
|
||||
startDate: '',
|
||||
endDate: '',
|
||||
memberType:2,
|
||||
birthMonth: '',
|
||||
},
|
||||
|
||||
personTypeOptions: [],
|
||||
@@ -669,6 +685,7 @@ layout("/layouts/platform.html"){
|
||||
const preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
window.location.href = loc() + "/doExport?unionId=" + this.pageForm.unionId + "&unitId=" + this.pageForm.unitId
|
||||
+ "&year=" + this.pageForm.year
|
||||
+ "&birthMonth=" + this.pageForm.birthMonth
|
||||
+ "&memberStatus=" + memberStatus
|
||||
+ "&personTypes=" + personTypes
|
||||
+ "&userStates=" + userStates
|
||||
@@ -695,6 +712,7 @@ layout("/layouts/platform.html"){
|
||||
const {
|
||||
startDate,
|
||||
endDate,
|
||||
birthMonth,
|
||||
campus,
|
||||
memberType,
|
||||
reverseSelection,
|
||||
@@ -705,7 +723,7 @@ layout("/layouts/platform.html"){
|
||||
window.location.href = loc() + "/doExportByUnion?=searchName=" + this.pageForm.searchName
|
||||
+ "&searchKeyword=" + this.pageForm.searchKeyword + "&unitId=" + unitId + "&unionId=" + unionId
|
||||
+ "&unionGroupId=" + unionGroupId + "&threeUnitId=" + threeUnitId + "&sexTypes=" + sexTypes + "&memberType=" + memberType
|
||||
+ "&roleIds=" + roleIds + "&age=" + age + "&year=" + this.pageForm.year + "&memberStatus=" + memberStatus
|
||||
+ "&roleIds=" + roleIds + "&age=" + age + "&year=" + this.pageForm.year + "&memberStatus=" + memberStatus + "&birthMonth=" + birthMonth
|
||||
+ "&startDate=" + (startDate ? this.getDate(startDate) : '') + "&endDate=" + (endDate ? this.getDate(endDate) : '') + "&campus=" + (campus ? campus : '')
|
||||
+ "&reverseSelection=" + (reverseSelection ? reverseSelection : '') + "&memberSearchName=" + (memberSearchName ? memberSearchName : '')
|
||||
+ "&memberSearchKeyWord=" + (memberSearchKeyWord ? memberSearchKeyWord : '') + "&personTypes=" + personTypes
|
||||
|
||||
@@ -93,9 +93,9 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-item :command="{type:'edit',data:row}">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item :command="{type:'delete',data:row}">
|
||||
<el-dropdown-item :command="{type:'delete',data:row}">
|
||||
删除
|
||||
</el-dropdown-item>-->
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'enable',data:row}">
|
||||
{{row.isEnable?'关闭':'开启'}}
|
||||
</el-dropdown-item>
|
||||
@@ -309,4 +309,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -150,6 +150,11 @@ layout("/layouts/platform.html"){
|
||||
<div v-if="node.level==2" style="padding:0 10px">
|
||||
<el-card shadow="never">
|
||||
<div class="text-right">
|
||||
|
||||
<template v-if="activeName === 'two'">
|
||||
<el-button size="medium" type="primary" @click="openAddOtherUnitAdmin">添加非本单位负责人</el-button>
|
||||
</template>
|
||||
|
||||
<el-button size="medium" type="primary" @click="openAdmin(adminPageForm,adminPageForm.flag)">
|
||||
{{butTitle}}
|
||||
</el-button>
|
||||
@@ -158,7 +163,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-tabs v-model="activeName" type="card" @tab-click="handleTabClick" class="mt10">
|
||||
<el-tab-pane label="分管校领导" name="one"></el-tab-pane>
|
||||
<el-tab-pane label="负责人" name="two"></el-tab-pane>
|
||||
<el-tab-pane label="部门负责人" name="two"></el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-card shadow="never">
|
||||
<el-table highlight-current-row :data="adminTableData" style="width: 100%;" height="661px">
|
||||
@@ -224,6 +229,34 @@ layout("/layouts/platform.html"){
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 添加非本单位的负责人 -->
|
||||
<el-dialog title="添加非本单位负责人" :visible.sync="adminOtherUnitDialogVisible" width="40%" :close-on-click-modal="false">
|
||||
<el-form ref="addOtherUnitAdminForm" :model="addOtherUnitAdminFormData" label-width="120px">
|
||||
<el-form-item label="单位名称" prop="unitName">
|
||||
<el-input v-model="addOtherUnitAdminFormData.unitName" placeholder="请输入承办单位编码" readonly></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="userId">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="addOtherUnitAdminFormData.userId"
|
||||
filterable
|
||||
remote
|
||||
placeholder="请输入工号或姓名进行搜索"
|
||||
:remote-method="userRemoteMethod">
|
||||
<el-option
|
||||
v-for="item in users"
|
||||
:key="item.id"
|
||||
:label="item.username+'('+item.loginname+')-' + item.unitname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="adminOtherUnitDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doAdminOtherUnit">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -270,6 +303,11 @@ layout("/layouts/platform.html"){
|
||||
unitName: [{required: true, message: '请输入承办单位名称', trigger: ['blur', 'change']}],
|
||||
isEnable: [{required: true, message: '请选择是否启用', trigger: ['blur', 'change']}],
|
||||
},
|
||||
|
||||
// 添加非本单位负责人
|
||||
adminOtherUnitDialogVisible: false,
|
||||
addOtherUnitAdminFormData: {},
|
||||
users: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -278,6 +316,44 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async doAdminOtherUnit(){
|
||||
if (!this.addOtherUnitAdminFormData.userId) {
|
||||
this.$message.warning('请选择负责人')
|
||||
return
|
||||
}
|
||||
const resp = await $.post('/platform/proposal/basics/undertake/doAdminOtherUnit', {
|
||||
unitId: this.addOtherUnitAdminFormData.id,
|
||||
userId: this.addOtherUnitAdminFormData.userId
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.adminOtherUnitDialogVisible = false
|
||||
await this.adminPageData()
|
||||
this.pageData()
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.$message.warning('添加失败')
|
||||
}
|
||||
},
|
||||
openAddOtherUnitAdmin(){
|
||||
console.log(this.checkData)
|
||||
this.addOtherUnitAdminFormData = {
|
||||
id: this.checkData.id,
|
||||
unitName: this.checkData.unitName,
|
||||
userId: '',
|
||||
}
|
||||
this.adminOtherUnitDialogVisible = true
|
||||
},
|
||||
async userRemoteMethod(query){
|
||||
this.users = []
|
||||
const resp = await $.post('/platform/vi/common/searchUser', {
|
||||
query: query
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.users = resp.data.list
|
||||
} else {
|
||||
this.$message.warning("查询失败")
|
||||
}
|
||||
},
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type === 'leader') {
|
||||
@@ -451,4 +527,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -162,7 +162,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -287,4 +287,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -133,7 +133,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -212,4 +212,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -129,7 +129,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -223,4 +223,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -159,7 +159,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -256,4 +256,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -133,7 +133,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -253,4 +253,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -101,7 +101,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -107,7 +107,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
@@ -243,4 +243,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -84,7 +84,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
},
|
||||
data() {
|
||||
@@ -167,4 +167,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -87,7 +87,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -130,7 +130,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
@@ -285,4 +285,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -103,7 +103,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
@@ -228,4 +228,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -122,7 +122,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -295,7 +295,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -396,4 +396,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -57,7 +57,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
@@ -131,4 +131,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -129,7 +129,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -184,4 +184,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -318,7 +318,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -81,7 +81,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -167,4 +167,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -212,7 +212,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
},
|
||||
data() {
|
||||
@@ -291,4 +291,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -349,7 +349,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -477,4 +477,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -140,7 +140,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -233,4 +233,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -281,7 +281,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -388,4 +388,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -149,7 +149,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -228,4 +228,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -128,7 +128,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -221,4 +221,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -165,7 +165,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
},
|
||||
methods: {
|
||||
async meetingChange(val) {
|
||||
|
||||
@@ -146,7 +146,7 @@ layout("/layouts/platform.html"){
|
||||
searchName: "proposalName",
|
||||
searchName2: "su.username",
|
||||
searchKeyword2: '',
|
||||
stateCode: '',
|
||||
// stateCode: '',
|
||||
meetingId: '',
|
||||
delegationId: '',
|
||||
proposalResult: [],
|
||||
@@ -182,7 +182,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
@@ -275,4 +275,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -147,7 +147,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -143,7 +143,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -149,7 +149,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -170,7 +170,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'meetingName', label: '届次', sortable: true, checked: 0},
|
||||
{prop: 'delegationCode', label: '代表团编码', sortable: true, checked: 0},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true, checked: 0},
|
||||
{prop: 'isConjoin', label: '是否并案'},
|
||||
// {prop: 'isConjoin', label: '是否并案'},
|
||||
// {prop: 'determineTypeCode', label: '是否重点'},
|
||||
// {prop: 'underTakeNameUser', label: '主管领导'},
|
||||
{prop: 'underTakeNames', label: '承办单位', sortable: false},
|
||||
@@ -249,6 +249,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.pblsaId = row.pblsaId
|
||||
this.formData.underTakeId = row.underTakeId
|
||||
this.formData.proposalId = row.id
|
||||
this.formData.opinion = '同意办结'
|
||||
// this.$set(this.formData, "opinion", "同意")
|
||||
},
|
||||
async doAudit() {
|
||||
|
||||
@@ -39,7 +39,7 @@ layout("/layouts/platform.html"){
|
||||
<proposal-search :page="pageForm" @search="doSearch"></proposal-search>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="提案委员会立案审核" :app="this">
|
||||
<table-tool label="提案工作组立案" :app="this">
|
||||
<template #func>
|
||||
<!-- <el-button @click="mergeAudit"-->
|
||||
<!-- :disabled="multipleSelection && multipleSelection.length >=2 ? false : true"-->
|
||||
@@ -104,7 +104,7 @@ layout("/layouts/platform.html"){
|
||||
<el-button type="primary" size="mini"
|
||||
v-if="[proposal.CASE].includes(row.stateCode)"
|
||||
@click="mergeIndex = 0; openAudit(row.id,row)">
|
||||
审核
|
||||
{{ row.canNotUndertake ? '重新分配' : '审核' }}
|
||||
</el-button>
|
||||
<!--<el-button type="primary" size="mini"
|
||||
v-if="row.resultCode=='notGive'"
|
||||
@@ -130,7 +130,7 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<proposal-info ref="audit" label="提案委员会立案审核" handle>
|
||||
<proposal-info ref="audit" label="提案工作组立案" handle>
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="auditForm" :rules="formRules" label-width="120px">
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
@@ -185,7 +185,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item prop="noFilingReason" label="理由列表" v-if="formData.resultCode=='notGive'">
|
||||
<el-select v-model="formData.noFilingReason" filterable clearable placeholder="请选择理由列表"
|
||||
@change="formData.opinion = '';formData.opinion='经提案委员会审理,该提案不予立案。'+formData.noFilingReason">
|
||||
@change="formData.opinion = '';formData.opinion='经提案工作组审理,该提案不予立案。'+formData.noFilingReason">
|
||||
<el-option v-for="item in noFilingReason"
|
||||
:key="item"
|
||||
:label="item"
|
||||
@@ -344,7 +344,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item prop="noFilingReason" label="理由列表" v-if="formData.resultCode=='notGive'">
|
||||
<el-select v-model="formData.noFilingReason" filterable clearable placeholder="请选择理由列表"
|
||||
@change="formData.opinion = '';formData.opinion='经提案委员会审理,该提案不予立案。'+formData.noFilingReason">
|
||||
@change="formData.opinion = '';formData.opinion='经提案工作组审理,该提案不予立案。'+formData.noFilingReason">
|
||||
<el-option v-for="item in noFilingReason"
|
||||
:key="item"
|
||||
:label="item"
|
||||
@@ -420,7 +420,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -458,7 +458,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'delegationCode', label: '代表团编码', sortable: true, checked: 0},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true, checked: 0},
|
||||
{prop: 'resultName', label: '立案结果', sortable: true},
|
||||
{prop: 'isConjoin', label: '是否并案', sortable: true},
|
||||
// {prop: 'isConjoin', label: '是否并案', sortable: true},
|
||||
// {prop: 'laLevelName', label: '是否重点', sortable: true},
|
||||
{prop: 'stateName', label: '提案状态', sortable: true},
|
||||
{prop: 'auditState', label: '审核状态', sortable: true},
|
||||
@@ -478,7 +478,7 @@ layout("/layouts/platform.html"){
|
||||
resultCode: [],
|
||||
hostUnit: '',
|
||||
helpUnit: '',
|
||||
opinion: '经提案委员会审理,该提案返回修改。',
|
||||
opinion: '经提案工作组审理,该提案返回修改。',
|
||||
typeId: '',
|
||||
determineTypeCode: ''
|
||||
},
|
||||
@@ -505,7 +505,7 @@ layout("/layouts/platform.html"){
|
||||
resultCode: [],
|
||||
hostUnit: '',
|
||||
helpUnit: '',
|
||||
opinion: '经提案委员会审理,该提案返回修改。',
|
||||
opinion: '经提案工作组审理,该提案返回修改。',
|
||||
typeId: '',
|
||||
determineTypeCode: ''
|
||||
}
|
||||
@@ -606,14 +606,14 @@ layout("/layouts/platform.html"){
|
||||
resultCodeChange(code) {
|
||||
if (code && code.length > 0) {
|
||||
if (code[0] === "opinion") {
|
||||
this.$set(this.formData, "opinion", "经提案委员会审理,该提案作为意见建议。")
|
||||
this.$set(this.formData, "opinion", "经提案工作组审理,该提案作为意见建议。")
|
||||
} else if (code[0] === "notGive") {
|
||||
this.$set(this.formData, "opinion", "经提案委员会审理,该提案不予立案。")
|
||||
this.$set(this.formData, "opinion", "经提案工作组审理,该提案不予立案。")
|
||||
} else {
|
||||
this.$set(this.formData, "opinion", "经提案委员会审理,该提案确定立案。")
|
||||
this.$set(this.formData, "opinion", "经提案工作组审理,该提案确定立案。")
|
||||
}
|
||||
} else {
|
||||
this.$set(this.formData, "opinion", "经提案委员会审理,该提案返回修改。")
|
||||
this.$set(this.formData, "opinion", "经提案工作组审理,该提案返回修改。")
|
||||
}
|
||||
|
||||
},
|
||||
@@ -648,6 +648,9 @@ layout("/layouts/platform.html"){
|
||||
let formValid = true
|
||||
this.$refs["auditForm"].validate(async valid => formValid = valid)
|
||||
if (formValid) {
|
||||
if (!this.formData.resultCode) {
|
||||
this.$notify.warning({title: '警告', message: '请选择立案结果!'});
|
||||
}
|
||||
const exist = this.formData.helpUnit.find(v => {
|
||||
return v === this.formData.hostUnit
|
||||
})
|
||||
|
||||
@@ -7,11 +7,11 @@ layout("/layouts/platform.html"){
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<proposal-search :page="pageForm" @search="doSearch"></proposal-search>
|
||||
<proposal-search :page="pageForm" :title="'建议'" @search="doSearch"></proposal-search>
|
||||
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="委员查阅提案" :app="this">
|
||||
<table-tool label="提案工作组查阅提案" :app="this">
|
||||
<template #func>
|
||||
<el-button @click="doSend" size="small" type="primary"
|
||||
v-if="(${@shiro.hasRole('T01') || @shiro.hasRole('sysadmin')} && pageForm.isAudit==false)"
|
||||
@@ -49,17 +49,19 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="200px">
|
||||
<template scope="{row}">
|
||||
<!-- <el-button type="primary" size="mini" @click="openView(row)">-->
|
||||
<!-- 查阅-->
|
||||
<!-- </el-button>-->
|
||||
<el-button type="primary" size="mini" @click="openView(row)">
|
||||
查阅
|
||||
</el-button>
|
||||
<!-- <el-button type="primary" size="mini"-->
|
||||
<!-- v-if="row.isOpinion==0&&[proposal.CASE].includes(row.stateCode)"-->
|
||||
<!-- @click="openAudit(row.id)">-->
|
||||
<!-- 提出意见-->
|
||||
<!-- </el-button>-->
|
||||
|
||||
<el-button type="primary" size="mini" @click="openRead(row)">
|
||||
建议
|
||||
<!-- 提案委员会主任才能审阅 -->
|
||||
<el-button v-if="$auth.hasRoleOr('sysadmin, jdh10') && row.isOpinion === 0 && ([proposal.CASE].includes(row.stateCode))"
|
||||
type="primary" size="mini" @click="openRead(row)">
|
||||
提出意见
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
@@ -70,7 +72,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</template>
|
||||
<template #edit>
|
||||
<proposal-info ref="audit" label="委员会成员意见" handle>
|
||||
<proposal-info ref="audit" label="提案工作组组长意见" handle>
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="auditForm" :rules="formRules" label-width="120px">
|
||||
<vi-title title="成员意见"></vi-title>
|
||||
@@ -131,7 +133,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
@@ -146,18 +148,18 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'proposalName', label: '提案名称', width: "300", disabled: true},
|
||||
{prop: 'username', label: '提案人', disabled: true},
|
||||
{prop: 'typeCode', label: '提案类型编码', sortable: true, checked: 0},
|
||||
{prop: 'typeName', label: '提案类型', sortable: true, checked: 0},
|
||||
{prop: 'typeName', label: '提案类型', sortable: true},
|
||||
{prop: 'mannerCode', label: '提案方式编码', sortable: true, checked: 0},
|
||||
{prop: 'mannerName', label: '提案方式', sortable: true, checked: 0},
|
||||
{prop: 'mannerName', label: '提案方式', sortable: true},
|
||||
{prop: 'meetingName', label: '届次', sortable: true, checked: 0},
|
||||
{prop: 'delegationCode', label: '代表团编码', sortable: true, checked: 0},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true, checked: 0},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true},
|
||||
{prop: 'stateName', label: '提案状态', sortable: true},
|
||||
{prop: 'caseNum', label: '立案票数', sortable: true},
|
||||
// {prop: 'caseNum', label: '立案票数', sortable: true},
|
||||
// {prop: 'emphasisNum', label: '重点提案票数', sortable: true},
|
||||
// {prop: 'ordinaryNum', label: '普通提案票数', sortable: true},
|
||||
{prop: 'opinionNum', label: '意见建议票数', sortable: true},
|
||||
{prop: 'notGiveNum', label: '不予立案票数', sortable: true},
|
||||
// {prop: 'opinionNum', label: '意见建议票数', sortable: true},
|
||||
// {prop: 'notGiveNum', label: '不予立案票数', sortable: true},
|
||||
|
||||
|
||||
],
|
||||
@@ -270,4 +272,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -233,7 +233,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -62,6 +62,10 @@ layout("/layouts/platform.html"){
|
||||
v-if="[proposal.UNSUBMIT].includes(row.stateCode)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button size="mini" type="danger" @click="doRevoke(row)"
|
||||
v-if="[proposal.INVIRTE, proposal.DELEGATION].includes(row.stateCode)">
|
||||
撤回
|
||||
</el-button>
|
||||
<el-button size="mini" type="danger" @click="doDelete(row)"
|
||||
v-if="[proposal.UNSUBMIT].includes(row.stateCode)&&row.stateCode!==proposal.FINISH">
|
||||
删除
|
||||
@@ -339,11 +343,26 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 撤销提案
|
||||
* @param row
|
||||
*/
|
||||
async doRevoke(row) {
|
||||
this.$confirm('如已邀请附议人,该操作将提醒附议人,撤回成功后您需重新邀请附议人,确定要撤回吗?', '提示', {type: 'warning'}).then(async () => {
|
||||
const resp = await $.post("/platform/proposal/transact/compose/doRevoke", {proposalId: row.id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
showSubmitBtn(row) {
|
||||
const {alreadySecondedCount, stateCode} = row
|
||||
if (row.mannerCode === 'W01') {
|
||||
|
||||
@@ -130,7 +130,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -106,7 +106,8 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="feedbackOpinion" label="反馈意见" class="is-required">
|
||||
<div id="feedbackEditor"></div>
|
||||
<text-editor v-model="formData.feedbackOpinion"></text-editor>
|
||||
<!-- <div id="feedbackEditor"></div>-->
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item prop="files" label="附件上传">-->
|
||||
@@ -156,7 +157,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -285,14 +286,15 @@ layout("/layouts/platform.html"){
|
||||
this.$refs['auditForm'].resetFields()
|
||||
}
|
||||
this.formData.proposalId = row.id
|
||||
this.$nextTick(() => {
|
||||
$("#feedbackEditor").html("")
|
||||
feedbackEditor = new wangEditor("#feedbackEditor")
|
||||
feedbackEditor.config.onchange = (html) => {
|
||||
this.formData.feedbackOpinion = html
|
||||
}
|
||||
feedbackEditor.create()
|
||||
})
|
||||
this.formData.feedbackOpinion = '同意办结'
|
||||
// this.$nextTick(() => {
|
||||
// $("#feedbackEditor").html("")
|
||||
// feedbackEditor = new wangEditor("#feedbackEditor")
|
||||
// feedbackEditor.config.onchange = (html) => {
|
||||
// this.formData.feedbackOpinion = html
|
||||
// }
|
||||
// feedbackEditor.create()
|
||||
// })
|
||||
},
|
||||
async doFeedback() {
|
||||
this.$refs["auditForm"].validate(async (valid) => {
|
||||
|
||||
@@ -103,7 +103,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
|
||||
@@ -41,7 +41,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -65,4 +65,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -47,7 +47,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -73,4 +73,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -123,7 +123,8 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="replyContent" label="办理内容" class="is-required">
|
||||
<div id="replyContentEditor"></div>
|
||||
<text-editor v-model="formData.replyContent"></text-editor>
|
||||
<!-- <div id="replyContentEditor"></div>-->
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="files" label="附件上传">
|
||||
@@ -209,15 +210,15 @@ layout("/layouts/platform.html"){
|
||||
<script>
|
||||
<!--#include("/platform/proposal/include/proposal_include.js"){}#-->
|
||||
|
||||
let E = window.wangEditor
|
||||
let replyContentEditor = null
|
||||
// let E = window.wangEditor
|
||||
// let replyContentEditor = null
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -429,17 +430,17 @@ layout("/layouts/platform.html"){
|
||||
this.formData.replyFiles = JSON.parse(replyFiles)
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
$("#replyContentEditor").html("")
|
||||
replyContentEditor = new E("#replyContentEditor")
|
||||
replyContentEditor.config.onchange = (html) => {
|
||||
this.formData.replyContent = html
|
||||
}
|
||||
replyContentEditor.create()
|
||||
if (replyContent) {
|
||||
replyContentEditor.txt.html(replyContent)
|
||||
}
|
||||
})
|
||||
// this.$nextTick(() => {
|
||||
// $("#replyContentEditor").html("")
|
||||
// replyContentEditor = new E("#replyContentEditor")
|
||||
// replyContentEditor.config.onchange = (html) => {
|
||||
// this.formData.replyContent = html
|
||||
// }
|
||||
// replyContentEditor.create()
|
||||
// if (replyContent) {
|
||||
// replyContentEditor.txt.html(replyContent)
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
},
|
||||
@@ -449,6 +450,12 @@ layout("/layouts/platform.html"){
|
||||
if (!valid) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!isSave && dd3s.html2txt(this.formData.replyContent).length < 200) {
|
||||
this.$notify.warning({title: '警告', message: '办理内容不能少于200字'});
|
||||
return
|
||||
}
|
||||
|
||||
const msg = this.conJoinProposal.length > 1 ? '提案' + this.conJoinProposalName + '已并案您只需办理一次,请确认?' : '您是否' + (isSave ? '保存' : '提交') + '该提案的办理内容,请确认?'
|
||||
const confirm = await this.$confirm(msg, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
||||
@@ -133,7 +133,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
|
||||
@@ -71,7 +71,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="250" fixed>
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.stateCode <= 400" @click="openEdit(row)" size="mini" type="primary">
|
||||
<el-button v-if="row.stateCode <= 400 && row.canTake == null" @click="openEdit(row)" size="mini" type="primary">
|
||||
承办意见
|
||||
</el-button>
|
||||
<el-button @click="doExport(row)" size="mini" type="primary">导出</el-button>
|
||||
@@ -98,7 +98,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item prop="resultCode" label="承办意向">
|
||||
<el-radio-group v-model="formData.resultCode" @change="resultCodeChange">
|
||||
<el-radio :label="true" border>可以承办</el-radio>
|
||||
<el-radio :label="true" border>同意承办</el-radio>
|
||||
<el-radio :label="false" border>无法承办</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
@@ -125,7 +125,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
@@ -143,12 +143,12 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'delegationCode', label: '代表团编码', sortable: true, checked: 0},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true, checked: 0},
|
||||
{prop: 'resultName', label: '立案结果', sortable: true},
|
||||
{prop: 'isConjoin', label: '是否并案', sortable: true},
|
||||
// {prop: 'isConjoin', label: '是否并案', sortable: true},
|
||||
// {prop: 'determineTypeCode', label: '是否重点', sortable: true},
|
||||
{prop: 'stateName', label: '提案状态', sortable: true},
|
||||
{prop: 'underTakeName', label: '承办单位', sortable: false},
|
||||
{prop: 'underTakeType', label: '承办类型', sortable: false},
|
||||
{prop: 'underTakeOpinion', label: '承办意见', sortable: false},
|
||||
{prop: 'underTakeOpinion', label: '是否可承办', sortable: false},
|
||||
],
|
||||
pageForm: {searchName: 'proposalName'},
|
||||
formData: {},
|
||||
@@ -201,7 +201,7 @@ layout("/layouts/platform.html"){
|
||||
async doAudit() {
|
||||
const valid = await this.$refs['auditForm'].validate()
|
||||
if (valid) {
|
||||
const confirm = await this.$confirm('您确定要提交吗?', '提示', {
|
||||
const confirm = await this.$confirm('承办意见只能提交一次,提交后无法修改或撤回,您确定要提交吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
@@ -228,4 +228,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -101,7 +101,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue?v=1.0.1'),
|
||||
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue')
|
||||
},
|
||||
|
||||
@@ -42,13 +42,10 @@ const subjectForm = {
|
||||
<!-- </el-option>-->
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div v-if="subject.type === 'checkbox'">
|
||||
最大选择数:
|
||||
<el-input v-model="subject.maxMulti" placeholder="最多可选数量"></el-input>
|
||||
<el-input-number v-model="subject.maxMulti" placeholder="最多可选数量"></el-input>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="subject.hint"-->
|
||||
<!-- placeholder="题目提示信息"-->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const answer = {
|
||||
/*language=HTML*/
|
||||
template: `
|
||||
<el-dialog title="查看答卷" :visible.sync="dialogVisible" width="50%">
|
||||
<el-dialog title="查看答卷" :visible.sync="dialogVisible" width="80%">
|
||||
<el-row type="flex" justify="end" class="mb10">
|
||||
<el-button type="primary" size="small" icon="el-icon-download" @click="exportUserAnswerXlsx">导出xlsx</el-button>
|
||||
</el-row>
|
||||
@@ -14,8 +14,10 @@ const answer = {
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-dialog>
|
||||
`,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
@@ -28,14 +30,16 @@ const answer = {
|
||||
onOpen(activityId) {
|
||||
this.activityId = activityId
|
||||
this.dialogVisible = true
|
||||
this.list()
|
||||
this.pageData()
|
||||
},
|
||||
|
||||
list() {
|
||||
$.post("/platform/qsv/survey/userAnswer", { activityId: this.activityId }).then((res) => {
|
||||
pageData() {
|
||||
this.pageForm.activityId = this.activityId
|
||||
$.post("/platform/qsv/survey/userAnswer", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableColumns = res.data.tableColumns
|
||||
this.tableData = res.data.tableData
|
||||
this.tableData = res.data.tableData.list
|
||||
this.pageForm.totalCount = res.data.tableData.totalCount
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -2,6 +2,9 @@ const report = {
|
||||
/*language=HTML*/
|
||||
template: `
|
||||
<el-dialog title="分析报告" :visible.sync="dialogVisible" width="50%">
|
||||
<el-row type="flex" justify="end" class="mb10">
|
||||
<el-button type="primary" size="small" icon="el-icon-download" @click="exportReportXlsx">导出xlsx</el-button>
|
||||
</el-row>
|
||||
<div v-for="(subject,subjectIndex) in subjects" class="subject">
|
||||
<div>
|
||||
<div class="title">
|
||||
@@ -83,6 +86,9 @@ const report = {
|
||||
this.optionUsers = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
exportReportXlsx(){
|
||||
this.$downLoad("/platform/qsv/survey/exportReportXlsx", { activityId: this.activityId })
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
|
||||
@@ -43,10 +43,10 @@ const COMMON_QUERY = {
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型</div>
|
||||
<div class="search-item-label">人员性质</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
<dict-select v-model="pageForm.preparedBy" style="width: 100%" placeholder="人员性质" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
|
||||
@@ -158,9 +158,9 @@ layout("/layouts/platform.html"){
|
||||
return
|
||||
}
|
||||
|
||||
const isHasRetire = this.checkUsers.some(v=> ['退休'].includes(v.userState))
|
||||
const isHasRetire = this.checkUsers.some(v=> ['退休', '离退休'].includes(v.userState))
|
||||
if (isHasRetire) {
|
||||
this.$message.warning('勾选数据中包含退休教工,请手动变更退休职工并设置【福利享受截止日期】')
|
||||
this.$message.warning('勾选数据中包含离退休教工,请您手动变更退休职工')
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ const USER_CHANGE_INFO = {
|
||||
<el-descriptions-item label="工作单位">
|
||||
<el-form-item prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择工作单位" style="width: 100%"
|
||||
:disabled="allowFields('unitId')" @change="getUnionName(formData.unitId)"
|
||||
:disabled="allowFields('unitId')" @change="getUnionName"
|
||||
v-model="formData.unitid">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
@@ -189,7 +189,14 @@ const USER_CHANGE_INFO = {
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="会员状态">
|
||||
<el-form-item prop="member">
|
||||
<el-radio-group v-model="formData.member" :disabled="isView" size="small">
|
||||
<el-radio border :label="1">会员</el-radio>
|
||||
<el-radio border :label="0">非会员</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="在职状态">
|
||||
<el-form-item prop="userState">
|
||||
<dict-select v-model="formData.userState" code="USER_STATE"
|
||||
@@ -202,8 +209,7 @@ const USER_CHANGE_INFO = {
|
||||
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
|
||||
|
||||
<template v-if="formData.userState == '退休'">
|
||||
<el-descriptions-item label="退休日期">
|
||||
<el-form-item prop="retireDate">
|
||||
@@ -217,17 +223,23 @@ const USER_CHANGE_INFO = {
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="福利享受截止日期">
|
||||
<el-form-item prop="welfareStopDate">
|
||||
<el-date-picker v-model="formData.welfareStopDate"
|
||||
type="date"
|
||||
:disabled="isView"
|
||||
placeholder="请选择福利享受截止日期"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<template v-if="formData.member">
|
||||
<el-descriptions-item label="福利享受截止日期">
|
||||
<el-form-item prop="welfareStopDate">
|
||||
<el-date-picker v-model="formData.welfareStopDate"
|
||||
type="date"
|
||||
:disabled="isView"
|
||||
placeholder="请选择福利享受截止日期"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
</template>
|
||||
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
</template>
|
||||
|
||||
@@ -421,6 +433,10 @@ const USER_CHANGE_INFO = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getUnionName(val){
|
||||
const data = this.units.find(v => v.id === val)
|
||||
this.$set(this.formData, 'unionName', data ? data.unionname : '')
|
||||
},
|
||||
onOpen(sourceChangeId){
|
||||
$.post('/platform/sourcechange/manage/getSourceChangeAndCurrent', {sourceChangeId})
|
||||
.then(resp => {
|
||||
@@ -440,7 +456,7 @@ const USER_CHANGE_INFO = {
|
||||
doSubmit() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
if (['退休'].includes(this.formData.userState) && !this.formData.welfareStopDate) {
|
||||
if (['退休', '离退休'].includes(this.formData.userState) && this.formData.member && !this.formData.welfareStopDate) {
|
||||
this.$message.warning('请在数据更新后信息中设置该教工的【福利享受截止日期】')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.data && resp.data.unionRelationThreeUnitId) {
|
||||
this.getThreeUnits(resp.data.unionRelationUnitId)
|
||||
}
|
||||
this.queryUser(this.formData.loginname)
|
||||
this.queryUser(this.formData.loginname, false)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -423,11 +423,11 @@ layout("/layouts/platform.html"){
|
||||
async getThreeUnits(val) {
|
||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(val)
|
||||
},
|
||||
queryUser(keyWord) {
|
||||
queryUser(keyWord, flag = true) {
|
||||
if (!keyWord) {
|
||||
return
|
||||
}
|
||||
$.post("/platform/staff/special/manage/queryUser", { keyWord }).then((res) => {
|
||||
$.post("/platform/staff/special/manage/queryUser", { keyWord, flag }).then((res) => {
|
||||
this.users = res.data
|
||||
})
|
||||
},
|
||||
|
||||
@@ -58,6 +58,14 @@ layout("/layouts/platform.html"){
|
||||
<span>{{ row.sponsorType === 1 ? '基层单位申请' : '协会发起人申请' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="归属分工会" prop="unionName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<el-tag v-if="row.sponsorType === 1 && row.unionName">{{ row.unionName }}</el-tag>
|
||||
<el-tag v-else-if="row.sponsorType === 1 && !row.unionName" type="warning">暂无</el-tag>
|
||||
<el-tag v-else type="info">非基层单位协会</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请时间" prop="create_time" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
|
||||
@@ -51,12 +51,14 @@ const activity = {
|
||||
})
|
||||
},
|
||||
enterActivity(item) {
|
||||
if (item.url) {
|
||||
sublime.jumpPagePjax(item.url)
|
||||
} else if (item.url) {
|
||||
this.$refs.openQRCode.openCode(item.url, "该活动只支持手机端报名,请使用手机扫描二维码报名!")
|
||||
} else {
|
||||
this.$message.warning("该活动不支持")
|
||||
try {
|
||||
if (item.url) {
|
||||
sublime.jumpPagePjax(item.url)
|
||||
} else {
|
||||
this.$refs.openQRCode.openCode(item.h5Url, "该活动只支持手机端,请使用钉钉扫描二维码!")
|
||||
}
|
||||
} catch (e) {
|
||||
this.$message.warning("该活动暂不支持!")
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -244,6 +244,8 @@ layout("/layouts/platform.html"){
|
||||
<el-radio-button :label="2">未选择</el-radio-button>
|
||||
</el-radio-group>
|
||||
|
||||
<el-button @click="openAddWelfareList" size="small" type="primary">添加人员</el-button>
|
||||
|
||||
<!-- <el-button :disabled="!pageForm.projectId"
|
||||
@click="doExportWelfareReceive(pageForm.projectId,pageForm.welfareUnit,pageForm.units,pageForm.personTypes,pageForm.userStates)"
|
||||
icon="el-icon-download"
|
||||
@@ -392,6 +394,10 @@ layout("/layouts/platform.html"){
|
||||
:disabled="!(pageFormSignMode!==1 && !row.isChoose)">
|
||||
代选
|
||||
</el-button>
|
||||
<el-button @click="openSendMsg(row)" size="mini" type="primary"
|
||||
:disabled="!(pageFormSignMode!==1 && !row.isChoose)">
|
||||
通知
|
||||
</el-button>
|
||||
<el-button @click="openEditWelfare(row)" size="mini" type="primary">
|
||||
编辑
|
||||
</el-button>
|
||||
@@ -433,14 +439,27 @@ layout("/layouts/platform.html"){
|
||||
<span style="display: flex; justify-content: center;">{{item.optionName}}</span>
|
||||
</el-tag>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-input-number :max="item.maxNum" :min="0"
|
||||
@keydown.native="onKeydown"
|
||||
@change="numChange(item.selectNum,item,oidx)"
|
||||
style="width: 50%"
|
||||
v-model="item.selectNum"></el-input-number>
|
||||
<el-col span="12">
|
||||
<div style="display: flex">
|
||||
<el-input-number :max="item.maxNum" :min="0"
|
||||
@keydown.native="onKeydown"
|
||||
@change="numChange(item.selectNum,item,oidx)"
|
||||
style="width: 40%"
|
||||
v-model="item.selectNum"></el-input-number>
|
||||
<el-select clearable filterable
|
||||
v-if="item.specs && item.specs.length > 0 && item.selectNum > 0"
|
||||
placeholder="请选择规格参数"
|
||||
style="width: 59%;margin-left: 5px"
|
||||
v-model="item.selectSpecs">
|
||||
<el-option
|
||||
:key="o.value"
|
||||
:label="o.value"
|
||||
:value="o.value"
|
||||
v-for="o in item.specs">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<el-form-item label="选择地址" style="color: red" v-if="ifReceiveAddress">
|
||||
@@ -623,6 +642,78 @@ layout("/layouts/platform.html"){
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<el-dialog :visible.sync="addWelfareListDialog" title="添加福利名单" width="50%">
|
||||
<el-form :model="addWelfareListData" label-width="120px" ref="editWelfareForm">
|
||||
<el-form-item label="福利项目名称">
|
||||
<el-input :value="addWelfareListData.projectName" readonly></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="添加人员">
|
||||
<el-select
|
||||
v-model="addWelfareListData.userIds"
|
||||
value-key="id"
|
||||
filterable
|
||||
remote
|
||||
style="width: 100%"
|
||||
multiple
|
||||
reserve-keyword
|
||||
@change="$refs.userSelect.$children[1].clear()"
|
||||
ref="userSelect"
|
||||
placeholder="请输入工号或者姓名查询"
|
||||
:remote-method="queryNotWelfareListUsers">
|
||||
<el-option
|
||||
v-for="item in notWelfareListUsers"
|
||||
:key="item.id"
|
||||
:label="item.username+'-'+item.loginname+'-'+item.unitname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="end" type="flex">
|
||||
<el-button @click="addWelfareListDialog=false">取消</el-button>
|
||||
<el-button @click="doAddWelfareList" type="primary">确定</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="sendMsgDialogVisible"
|
||||
title="请在下方填写需要发送的内容"
|
||||
width="50%"
|
||||
>
|
||||
<el-form :model="sendFormData" label-width="80px" ref="sendForm">
|
||||
<el-form-item label="发送对象" prop="userInfo">
|
||||
<el-input placeholder="请输入发送对象" readonly v-model="sendFormData.userInfo"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:rules="[{required: true, message: '请输入发送标题', trigger: ['blur', 'change']}]"
|
||||
label="发送标题"
|
||||
prop="title">
|
||||
<el-input
|
||||
placeholder="请输入发送标题"
|
||||
v-model="sendFormData.title">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
:rules="[{required: true, message: '请选择发送内容', trigger: ['blur', 'change']}]"
|
||||
label="发送内容"
|
||||
prop="content">
|
||||
<el-input
|
||||
:rows="6"
|
||||
placeholder="请输入内容"
|
||||
type="textarea"
|
||||
v-model="sendFormData.content">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span class="dialog-footer" slot="footer">
|
||||
<el-button @click="sendMsgDialogVisible = false">取 消</el-button>
|
||||
<el-button @click="sendMsg" type="primary">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
<!--#include("/platform/welfare/include/common.js"){}#-->
|
||||
@@ -677,7 +768,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
tableColumns: commonColumns.concat([
|
||||
{prop: 'isChoose', label: '是否选择', width: "100px", sortable: true},
|
||||
{prop: 'gist_list', label: '所选福利', width: "100px"},
|
||||
{prop: 'gist_list', label: '所选福利', width: "200px"},
|
||||
{prop: 'userSign', label: '签字', width: "100px"},
|
||||
]),
|
||||
formRules: {},
|
||||
@@ -714,12 +805,116 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
reimbursementDialog: false,
|
||||
|
||||
/**
|
||||
* 添加福利名单相关
|
||||
*/
|
||||
addWelfareListDialog: false,
|
||||
addWelfareListData: {},
|
||||
notWelfareListUsers: [],
|
||||
/**
|
||||
* 发送通知相关
|
||||
*/
|
||||
sendMsgDialogVisible: false,
|
||||
sendFormData: {
|
||||
userInfo: '',
|
||||
loginname: '',
|
||||
title: '',
|
||||
content: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'courier-number-info': httpVueLoader('/components/welfare/CourierNumberInfo.vue?v=' + new Date().getTime())
|
||||
},
|
||||
methods: {
|
||||
async sendMsg(){
|
||||
if (!this.pageForm.projectId) {
|
||||
this.notifyWarning('请选择福利项目')
|
||||
return
|
||||
}
|
||||
const valid = await this.$refs['sendForm'].validate()
|
||||
if (!valid) return
|
||||
const confirm = await this.$confirm('您确定要向发送信息吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonTest: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post(loc() + '/sendMsg', {
|
||||
title: this.sendFormData.title,
|
||||
projectId: this.pageForm.projectId,
|
||||
content: this.sendFormData.content,
|
||||
loginname: this.sendFormData.loginname
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.sendMsgDialogVisible = false
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
openSendMsg(row) {
|
||||
this.sendFormData.userInfo = row.username + '(' + row.loginname + ')'
|
||||
this.sendFormData.loginname = row.loginname
|
||||
this.sendMsgDialogVisible = true
|
||||
},
|
||||
/**
|
||||
* 查询不在福利名单的人
|
||||
*/
|
||||
async queryNotWelfareListUsers(key){
|
||||
if (this.addWelfareListData.projectId === '') {
|
||||
this.$message.info('请先选择福利项目')
|
||||
return
|
||||
}
|
||||
|
||||
const resp = await $.post('/platform/welfare/list/mange/queryNotWelfareListUsers', {
|
||||
projectId: this.addWelfareListData.projectId,
|
||||
query: key
|
||||
})
|
||||
|
||||
if (resp.code === 0) {
|
||||
this.notWelfareListUsers = resp.data.list
|
||||
}
|
||||
|
||||
},
|
||||
doAddWelfareList() {
|
||||
if (!this.addWelfareListData.userIds || this.addWelfareListData.userIds.length === 0) {
|
||||
this.$message.warning('请选择要添加的福利人员')
|
||||
return
|
||||
}
|
||||
|
||||
this.$confirm('确定要添加吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const resp = await $.post('/platform/welfare/list/mange/addWelfareList', {
|
||||
projectId: this.addWelfareListData.projectId,
|
||||
userIds: JSON.stringify(this.addWelfareListData.userIds)
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.$message.success('添加成功')
|
||||
this.addWelfareListDialog = false
|
||||
this.notWelfareListUsers = []
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
openAddWelfareList(){
|
||||
const projectInfo = this.projectSelectOptions.find(v=> v.value === this.pageForm.projectId)
|
||||
if (projectInfo) {
|
||||
this.addWelfareListData = {
|
||||
projectId: this.pageForm.projectId,
|
||||
projectName: projectInfo.label,
|
||||
userIds: []
|
||||
}
|
||||
this.addWelfareListDialog = true
|
||||
}
|
||||
},
|
||||
onKeydown(event) {
|
||||
if (event.key !== "ArrowUp" && event.key !== "ArrowDown") {
|
||||
event.preventDefault();
|
||||
@@ -910,6 +1105,9 @@ layout("/layouts/platform.html"){
|
||||
const selectOption = this.userSelection.find(us => us.selectOptionId === option.id)
|
||||
if (selectOption) {
|
||||
option.selectNum = selectOption.selectNum
|
||||
if (selectOption.selectSpecs) {
|
||||
option.selectSpecs = selectOption.selectSpecs
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -950,6 +1148,20 @@ layout("/layouts/platform.html"){
|
||||
this.notifyWarning("请先选择份数")
|
||||
return
|
||||
}
|
||||
|
||||
const options = this.welfareOptions.filter(v => v.selectNum >= 1)
|
||||
|
||||
for (const option of options) {
|
||||
// 检查是否有 specs
|
||||
if (option.specs) {
|
||||
// 检查 selectSpecs 是否为空或未定义
|
||||
if (!option.selectSpecs) {
|
||||
this.$message.warning('请选择' + option.optionName + '的规格')
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const resp = await $.post(loc() + "/doEditWelfareData", {
|
||||
editWelfareData: JSON.stringify(this.editWelfareData),
|
||||
welfareOptions: JSON.stringify(this.welfareOptions)
|
||||
|
||||
@@ -16,11 +16,12 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
|
||||
.descriptionClass {
|
||||
height: 80px;
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 13px;
|
||||
color: #868282;
|
||||
@@ -103,7 +104,7 @@ layout("/layouts/platform.html"){
|
||||
<template scope="{row}" v-else-if="column.prop=='gist_list'">
|
||||
<template v-if="!projectInfo.flexible">{{projectInfo.gift}}</template>
|
||||
<template v-if="row.gist_list">
|
||||
{{row.gifts.map(v=>v.name + '('+v.num+'份)').join(',')}}
|
||||
{{row.gist_list}}
|
||||
</template>
|
||||
</template>
|
||||
|
||||
@@ -201,7 +202,7 @@ layout("/layouts/platform.html"){
|
||||
<el-col :key="oidx" :span="6"
|
||||
v-for="(option, oidx) in subject.options">
|
||||
<el-card shadow="never"
|
||||
style="margin: 5px;">
|
||||
style="margin: 5px">
|
||||
|
||||
<div slot="header"
|
||||
style="display: flex;justify-content: space-between">
|
||||
@@ -235,10 +236,15 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row style="">
|
||||
<el-input-number disabled
|
||||
<el-row>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span v-if="option.selectSpecs">规格参数:{{option.selectSpecs}}</span>
|
||||
<span v-if="option.selectNum" style="color: #0a84ff">选择份数:{{option.selectNum}}</span>
|
||||
<span v-else style="color: #bc2a25">{{ '未选择此项' }}</span>
|
||||
</div>
|
||||
<!--<el-input-number disabled
|
||||
style="width: 100%"
|
||||
v-model="option.selectNum"></el-input-number>
|
||||
v-model="option.selectNum"></el-input-number>-->
|
||||
</el-row>
|
||||
|
||||
</el-card>
|
||||
@@ -489,6 +495,9 @@ layout("/layouts/platform.html"){
|
||||
const option = this.userSelection.find(x => x.selectOptionId === v.id)
|
||||
if (option) {
|
||||
v.selectNum = option.selectNum
|
||||
if (option.selectSpecs) {
|
||||
v.selectSpecs = option.selectSpecs
|
||||
}
|
||||
} else {
|
||||
v.selectNum = 0
|
||||
}
|
||||
|
||||
@@ -468,6 +468,17 @@ layout("/layouts/platform.html"){
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
-->
|
||||
<el-form-item
|
||||
:rules="[{required: true, message: '请输入发送标题', trigger: ['blur', 'change']}]"
|
||||
label="发送标题"
|
||||
prop="title">
|
||||
<el-input
|
||||
:rows="6"
|
||||
placeholder="请输入发送标题"
|
||||
v-model="formData.title">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
:rules="[{required: true, message: '请选择发送内容', trigger: ['blur', 'change']}]"
|
||||
label="发送内容"
|
||||
@@ -593,6 +604,7 @@ layout("/layouts/platform.html"){
|
||||
// return
|
||||
// }
|
||||
const resp = await $.post(loc() + '/sendMsgToNotWelfareUsers', {
|
||||
title: this.formData.title,
|
||||
projectId: this.formData.id,
|
||||
sendMsgValue: this.formData.content,
|
||||
url: this.formData.url
|
||||
|
||||
@@ -220,38 +220,59 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: flex">
|
||||
<el-image
|
||||
style="width: 150px;height: 150px;"
|
||||
<div style="display: grid; grid-template-rows: auto 1fr auto; height: 200px">
|
||||
<div style="display: flex">
|
||||
<el-image
|
||||
style="width: 150px; height: 150px"
|
||||
:src="CREATE_PREVIEW_URL(option.imgUrl)"
|
||||
fit="contain"
|
||||
></el-image>
|
||||
<div style="width:calc(100% - 150px);padding-left: 20px;position: relative">
|
||||
<div style="white-space: nowrap;display: flex">
|
||||
<span class="desc_label"></span>
|
||||
<el-tooltip placement="top" :content="option.supplier">
|
||||
<span class="desc_value"
|
||||
style="width: calc(100% - 80px);text-overflow: ellipsis;overflow: hidden">
|
||||
{{option.supplier}}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div v-if="option.simpleDesc">
|
||||
<span class="desc_label"></span>
|
||||
<span class="desc_value">
|
||||
{{option.simpleDesc}}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-input-number :disabled="isView"
|
||||
:max="option.maxNum"
|
||||
:min="0"
|
||||
@keydown.native="onKeydown"
|
||||
@change="numChange(option.selectNum,option,oidx)"
|
||||
style="width: 150px;position: absolute;right: 0;bottom: 0;"
|
||||
v-model="option.selectNum"></el-input-number>
|
||||
></el-image>
|
||||
|
||||
<div style="width: calc(100% - 150px); padding-left: 20px; position: relative">
|
||||
<div style="white-space: normal; display: flex">
|
||||
<span class="desc_label"></span>
|
||||
<el-tooltip placement="top" :content="option.supplier">
|
||||
<span
|
||||
class="desc_value"
|
||||
style="width: calc(100% - 80px);text-overflow: ellipsis;overflow: hidden;overflow-y: auto;height: 100px;"
|
||||
>
|
||||
{{ option.supplier }}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div v-if="option.simpleDesc">
|
||||
<span class="desc_label"></span>
|
||||
<span class="desc_value">{{ option.simpleDesc }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-input-number
|
||||
:disabled="isView"
|
||||
:max="option.maxNum"
|
||||
:min="0"
|
||||
@keydown.native="onKeydown"
|
||||
@change="numChange(option.selectNum, option, oidx)"
|
||||
style="width: 150px; position: absolute; right: 0; bottom: 0"
|
||||
v-model="option.selectNum"
|
||||
></el-input-number>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 17px">
|
||||
<el-select style="width: 100%"
|
||||
clearable
|
||||
v-if="option.specs && option.specs.length > 0 && option.selectNum > 0"
|
||||
placeholder="请选择规格参数"
|
||||
v-model="option.selectSpecs"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in option.specs"
|
||||
:key="item.value"
|
||||
:label="item.value"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -665,14 +686,29 @@ layout("/layouts/platform.html"){
|
||||
return
|
||||
}
|
||||
}
|
||||
const formData = this.projectInfo.welfareProjectSubjects[0].options.filter(v => v.selectNum >= 1).map(v => {
|
||||
|
||||
const options = this.projectInfo.welfareProjectSubjects[0].options.filter(v => v.selectNum >= 1)
|
||||
|
||||
for (const option of options) {
|
||||
// 检查是否有 specs
|
||||
if (option.specs) {
|
||||
// 检查 selectSpecs 是否为空或未定义
|
||||
if (!option.selectSpecs) {
|
||||
this.$toast.fail('请选择' + option.optionName + '的规格')
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const formData = options.map(v => {
|
||||
return {
|
||||
welfareId: this.projectInfo.id,
|
||||
subjectId: v.subjectId,
|
||||
selectOptionId: v.id,
|
||||
receiveAddress: this.formData.receiveAddress,
|
||||
userSign: this.formData.sign,
|
||||
selectNum: v.selectNum
|
||||
selectNum: v.selectNum,
|
||||
selectSpecs: v.selectSpecs
|
||||
}
|
||||
})
|
||||
const {
|
||||
@@ -739,6 +775,9 @@ layout("/layouts/platform.html"){
|
||||
const option = this.userSelection.find(x => x.selectOptionId === v.id)
|
||||
if (option) {
|
||||
v.selectNum = option.selectNum
|
||||
if (option.selectSpecs) {
|
||||
this.$set(v, "selectSpecs", option.selectSpecs)
|
||||
}
|
||||
} else {
|
||||
v.selectNum = 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user