<template>
|
<div>
|
<el-row >
|
<el-col :span="18">
|
<el-form label-width="80px" :inline="true" :label-position="labelPosition" :model="formInline" class="form-inline">
|
<el-form-item label="标题">
|
<el-input v-model="formInline.title" placeholder="标题"></el-input>
|
</el-form-item>
|
|
<el-form-item label="描述">
|
<el-input v-model="formInline.desp" placeholder="描述"></el-input>
|
</el-form-item>
|
|
<el-form-item >
|
<el-button type="primary" @click="query_(true)">查询</el-button>
|
<el-button type="info" @click="empty_">重置</el-button>
|
</el-form-item>
|
</el-form>
|
</el-col>
|
<el-col :span="4" >
|
<el-button type="primary" @click="createNew">创建</el-button>
|
|
</el-col>
|
</el-row>
|
|
|
<div ref="list_div" class="infinite-list-wrapper" style="overflow:auto; border-top: 1px solid #c3c5c7;">
|
<div v-if="isRefresh" class="list" v-infinite-scroll="load" infinite-scroll-disabled="disabled">
|
<div v-for="one in dataList" :key="one.id" class="list-item">
|
<el-row>
|
<el-col :span="18"><div class="grid-content z_grid-content1 grid-content_text" @click="showItem(one)">{{one.title}}</div></el-col>
|
<el-col :span="3"><div class="grid-content z_grid-content1 grid-content_exam" @click="showLinkItem(one)">{{formatter(one)}}</div></el-col>
|
<el-col :span="3"><div class="grid-content z_grid-content1 grid-content_time">{{one.time}}</div></el-col>
|
</el-row>
|
|
<el-row style="padding-left: 16px;">
|
<el-col :span="20"><div class="grid-content z_grid-content2">{{one.desp}}</div></el-col>
|
</el-row>
|
</div>
|
</div>
|
<p v-if="loading">加载中...</p>
|
<p v-if="noMore">没有更多了</p>
|
</div>
|
|
<el-dialog title="创建话题" :visible.sync="dialogFormVisible" @close="closeCreate" >
|
<el-form :model="form">
|
<el-form-item label="话题名称" :label-width="formLabelWidth">
|
<el-input v-model="form.title" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="话题内容" :label-width="formLabelWidth">
|
<el-input type="textarea" v-model="form.desp" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-upload
|
class="upload-demo"
|
:action="uploadUrl"
|
:on-preview="handlePreview"
|
:data="form"
|
:limit="3"
|
:auto-upload='false'
|
ref="upload"
|
:on-change="onChange"
|
:on-exceed="handleExceed"
|
:on-success="uploadSuccess"
|
>
|
<el-button size="small" type="primary">点击上传</el-button>
|
<div slot="tip" class="el-upload__tip">不超过50M</div>
|
</el-upload>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer" style="">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="createTopic">确 定</el-button>
|
</div>
|
</el-dialog>
|
|
<el-dialog v-if="dialogVisible" title="详情" :visible.sync="dialogVisible"
|
width="40%" height="40%" custom-class="handleClose">
|
<span>{{selectOne.title}}</span>
|
<el-divider></el-divider>
|
<div style="content">
|
<span>{{selectOne.desp}}</span>
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button v-if="canEdit" type="primary" @click="edit">修改</el-button>
|
<el-button v-if="!selectOne.examine" type="primary" @click="addProject_title">立题评估</el-button>
|
<el-button v-if="selectOne.attachment && selectOne.attachment != ''" type="primary" @click="download(selectOne)">下 载</el-button>
|
</span>
|
</el-dialog>
|
|
<el-dialog v-if="dialogFormTitle" title="立题评估" :visible.sync="dialogFormTitle" append-to-body>
|
<div class="transition-box" style="text-align: left; margin: 0 10px;">
|
<div>
|
<el-form :show-message="false" :model="form_['title']" ref="ref_title" label-position='right' label-width="100px" class="demo-form-inline">
|
<el-row>
|
<el-col :span="22" class="z_grid-content3">
|
<el-form-item label="题目类型"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-select size="mini"
|
@change="title_titleType"
|
v-model="form_['title'].titleType" placeholder="请选择" style="width: 100%;">
|
<el-option
|
v-for="item in options_titleType"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="form_['title'].titleType">
|
<el-col :span="22">
|
<el-form-item label="描述" prop="titleType"
|
:rules="[{required: true, message: '请输入', trigger: ['blur', 'change']}]"
|
>
|
<el-input type="textarea" v-model="form_['title'].titleInput" :placeholder="titleInput_" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6" class="z_grid-content3">
|
<el-form-item label="合同金额" prop="budget"
|
:rules="[{required: true, message: '请输入金额', trigger: ['blur', 'change']}]"
|
>
|
<el-input type="number" size="mini" v-model="form_['title'].budget" placeholder="请输入金额" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="负责人" prop="userIds"
|
:rules="{type: 'array', required: true, message: '请选择负责人', trigger: ['change', 'blur']}"
|
>
|
<el-cascader
|
style="width: 100%;"
|
size="mini"
|
v-model="form_['title'].userIds"
|
:options="options_users"
|
:props="{ expandTrigger: 'hover' }"
|
placeholder="请选择负责人"
|
>
|
</el-cascader>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6" class="z_grid-content3">
|
<el-form-item label="交付物" prop="mustAttach"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-switch v-model="form_['title'].mustAttach"></el-switch>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="开始日期" prop="startTime"
|
:rules="{ required: true, trigger: ['change', 'blur']}"
|
>
|
<el-date-picker type="date" :picker-options="pickerOptions01" size="mini" placeholder="选择开始日期" v-model="form_['title'].startTime" style="width: 100%;"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="结束日期" prop="endTime"
|
:rules="{required: true, trigger: ['change', 'blur']}"
|
>
|
<el-date-picker type="date" :picker-options="pickerOptions02" size="mini" placeholder="选择结束日期" v-model="form_['title'].endTime" style="width: 100%;"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="4" class="z_grid-content3">
|
<el-form-item label="是否兼职编辑" label-width="120px">
|
<el-checkbox @change="parttimeChange('title')" v-model="form_['title'].parttime"></el-checkbox>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="18" class="z_grid-content3">
|
<el-form-item label="兼职编辑成员" label-width="120px">
|
<el-select @change="parttimeChange_" multiple :disabled="!form_['title'].parttime" size="mini" v-model="form_['title'].parttimeUser" style="width: 100%;">
|
<el-option
|
v-for="item in options_parttimeUser"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="17" class="z_grid-content1">
|
<el-form-item label="备注说明">
|
<el-input type="textarea" v-model="form_['title'].remark" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="5" class="z_grid-content3">
|
<el-form-item label="语言" prop="language" label-width="80px"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-select size="mini" v-model="form_['title'].language" placeholder="选择语言" style="width: 100%;">
|
<el-option label="中文" value="Cn"></el-option>
|
<el-option label="英文" value="En"></el-option>
|
<el-option label="中英文" value="CnEn"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
</div>
|
<div slot="footer" class="dialog-footer" style="">
|
<el-button @click="dialogFormTitle = false">取 消</el-button>
|
<el-button type="primary" @click="saveFormTitle">确 定</el-button>
|
<el-button v-if="!selectOne.examine" type="success" @click="addProject">生成项目</el-button>
|
</div>
|
</el-dialog>
|
|
<el-dialog v-if="dialogFormTitle2" title="立题评估" :visible.sync="dialogFormTitle2">
|
<div class="transition-box" style="text-align: left; margin: 0 10px;">
|
<div>
|
<el-form :show-message="false" :model="form_['title']" ref="ref_title" label-position='right' label-width="100px" class="demo-form-inline">
|
<el-row>
|
<el-col :span="22" class="z_grid-content3">
|
<el-form-item label="题目类型"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-select size="mini"
|
@change="title_titleType"
|
v-model="form_['title'].titleType" placeholder="请选择" style="width: 100%;">
|
<el-option
|
v-for="item in options_titleType"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="form_['title'].titleType">
|
<el-col :span="22">
|
<el-form-item label="描述" prop="titleType"
|
:rules="[{required: true, message: '请输入', trigger: ['blur', 'change']}]"
|
>
|
<el-input type="textarea" v-model="form_['title'].titleInput" :placeholder="titleInput_" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6" class="z_grid-content3">
|
<el-form-item label="合同金额" prop="budget"
|
:rules="[{required: true, message: '请输入金额', trigger: ['blur', 'change']}]"
|
>
|
<el-input type="number" size="mini" v-model="form_['title'].budget" placeholder="请输入金额" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="负责人" prop="userIds"
|
:rules="{type: 'array', required: true, message: '请选择负责人', trigger: ['change', 'blur']}"
|
>
|
<el-cascader
|
style="width: 100%;"
|
size="mini"
|
v-model="form_['title'].userIds"
|
:options="options_users"
|
:props="{ expandTrigger: 'hover' }"
|
placeholder="请选择负责人"
|
>
|
</el-cascader>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6" class="z_grid-content3">
|
<el-form-item label="交付物" prop="mustAttach"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-switch v-model="form_['title'].mustAttach"></el-switch>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="开始日期" prop="startTime"
|
:rules="{ required: true, trigger: ['change', 'blur']}"
|
>
|
<el-date-picker type="date" :picker-options="pickerOptions01" size="mini" placeholder="选择开始日期" v-model="form_['title'].startTime" style="width: 100%;"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11" class="z_grid-content3">
|
<el-form-item label="结束日期" prop="endTime"
|
:rules="{required: true, trigger: ['change', 'blur']}"
|
>
|
<el-date-picker type="date" :picker-options="pickerOptions02" size="mini" placeholder="选择结束日期" v-model="form_['title'].endTime" style="width: 100%;"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="4" class="z_grid-content3">
|
<el-form-item label="是否兼职编辑" label-width="120px">
|
<el-checkbox @change="parttimeChange('title')" v-model="form_['title'].parttime"></el-checkbox>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="18" class="z_grid-content3">
|
<el-form-item label="兼职编辑成员" label-width="120px">
|
<el-select @change="parttimeChange_" multiple :disabled="!form_['title'].parttime" size="mini" v-model="form_['title'].parttimeUser" style="width: 100%;">
|
<el-option
|
v-for="item in options_parttimeUser"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="17" class="z_grid-content1">
|
<el-form-item label="备注说明">
|
<el-input type="textarea" v-model="form_['title'].remark" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="5" class="z_grid-content3">
|
<el-form-item label="语言" prop="language" label-width="80px"
|
:rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
|
>
|
<el-select size="mini" v-model="form_['title'].language" placeholder="选择语言" style="width: 100%;">
|
<el-option label="中文" value="Cn"></el-option>
|
<el-option label="英文" value="En"></el-option>
|
<el-option label="中英文" value="CnEn"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
</div>
|
<div slot="footer" class="dialog-footer" style="">
|
<el-button @click="dialogFormTitle2 = false">取 消</el-button>
|
<el-button type="primary" @click="saveFormTitle">确 定</el-button>
|
<el-button v-if="!selectOne.examine" type="success" @click="addProject">生成项目</el-button>
|
</div>
|
</el-dialog>
|
|
<div style="width: 0px; height: 0px;">
|
<iframe ref="frame_export" style="width: 0px; height: 0px; border: 0px;"></iframe>
|
</div>
|
<el-dialog v-if="dialog_1" @close="Cancel" width="70%" top="50px" :visible.sync="dialog_1" append-to-body>
|
<newProject @closeNewProject="closeNewProject" v-bind:rowData="rowData" ref="newProject_"></newProject>
|
</el-dialog>
|
|
<el-dialog v-if="dialog_2" @close="Cancel1" width="70%" top="50px" :visible.sync="dialog_2" append-to-body>
|
<newProject ref="newProject1_"></newProject>
|
</el-dialog>
|
|
<el-dialog v-if="dialogProdetail" width="70%" top="50px" :visible.sync="dialogProdetail" append-to-body>
|
<prodetail v-bind:rowData="rowData" ref="newProject2_"></prodetail>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import newProject from '../components/popup/newProject.vue'
|
import prodetail from '../components/popup/prodetail.vue'
|
export default {
|
components: {
|
newProject,
|
prodetail
|
},
|
data() {
|
return {
|
pickerOptions01: {
|
disabledDate: (time) => {
|
let code = "title";
|
if(this.form_[code].endTime) {
|
return time.getTime() > this.form_[code].endTime;
|
}
|
}
|
},
|
pickerOptions02: {
|
disabledDate: (time) => {
|
let code = "title";
|
if(this.form_[code].startTime) {
|
return time.getTime() < this.form_[code].startTime;
|
}
|
}
|
},
|
|
isRefresh: true,
|
rowData: {},
|
dialog_1: false,
|
dialog_2: false,
|
uploadUrl:"/api/api/file/topicUpload",
|
form:{},
|
form_: {
|
title: {mustAttach: true},
|
},
|
options_titleType: [
|
{
|
value: "针对客户感兴趣的题目范围",
|
label: "针对客户感兴趣的题目范围"
|
},
|
{
|
value: "针对客户既定的题目方向",
|
label: "针对客户既定的题目方向"
|
}
|
],
|
titleInput_: "",
|
options_users: [],
|
|
pageno:1,
|
total:0,
|
maxPage:0,
|
fileList: [],
|
dialogVisible: false,
|
dialogProdetail: false,
|
dialogFormVisible: false,
|
dialogFormTitle: false,
|
dialogFormTitle2: false,
|
labelPosition: "right",
|
formInline:{},
|
selectOne:{
|
title:"biaoti",
|
desp:"miaoshu",
|
attachment:"222"
|
},
|
formLabelWidth:"100px",
|
dataList: [
|
// {id:1,attachment:"222",title:"标题", desp:"描述时发生纠纷司符合双方酒叟发动机时代峰峻配电间 刀片机水电费搜豆腐皮搜的看法我都叫打破是觉得批发商附加费第三季度破发接收到发地方就搜到到四点分发偶读囧", time:"12分钟前"},
|
// {id:1,attachment:"222",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
// {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
|
],
|
options_parttimeUser: [],
|
loading: false,
|
|
}
|
},
|
computed: {
|
noMore() {
|
return this.maxPage == this.pageno
|
},
|
disabled() {
|
return this.loading || this.noMore
|
}
|
},
|
created() {
|
//user
|
this.getUsers();
|
this.getPartTime();
|
},
|
mounted() {
|
this.getData();
|
let clientHeight = document.documentElement.clientHeight;
|
let tableHeight_ = clientHeight - 60 - 45 - 62;
|
this.$refs.list_div.style['height'] = tableHeight_ + "px";
|
},
|
methods: {
|
getPartTime() {
|
let me = this;
|
let url = "/api/sysRoleMapping/partTime";
|
this.$axios.get(url)
|
.then(data_ => {
|
this.options_parttimeUser = data_.data.data;
|
|
}).catch(error =>{
|
|
})
|
},
|
getUsers() {
|
let me = this;
|
let url = "/api/sysRoleMapping/detail";
|
this.$axios.get(url)
|
.then(data_ => {
|
let list = data_.data.data;
|
let parId = "";
|
let obj = {};
|
let result = [];
|
|
list.map(el => {
|
obj[el.id] = el;
|
})
|
for(let i=0, len = list.length; i < len; i++) {
|
let id = list[i].roleName;
|
//设置显示字段
|
list[i].value = list[i].id;
|
list[i].label = list[i].name;
|
|
if(id == parId || !id) {
|
if(!obj[list[i].id].children) {
|
obj[list[i].id].children = [];
|
}
|
result.push(list[i]);
|
continue;
|
}
|
if(obj[id].children) {
|
obj[id].children.push(list[i]);
|
} else {
|
obj[id].children = [list[i]];
|
}
|
}
|
|
me.options_users = result;
|
|
}).catch(error =>{
|
})
|
},
|
|
Cancel() {
|
this.$refs.newProject_.Cancel();
|
// this.dialogFormVisible = false;
|
},
|
Cancel1() {
|
|
},
|
|
addProject_title() {
|
let me = this;
|
//获取立题评估数据
|
// this.form_ = {title: {mustAttach: true},};
|
if (this.selectOne.titleId) {
|
let url = "/api/detail/get/" + this.selectOne.titleId;
|
this.$axios.get(url)
|
.then(data_ => {
|
window.console.log(data_);
|
me.form_ = {
|
title: data_.data.data
|
}
|
if (data_.data.data.parttimeUser) {
|
me.form_['title'].parttimeUser = data_.data.data.parttimeUser.split(";");
|
}
|
else {
|
me.form_['title'].parttimeUser = [];
|
}
|
|
me.form_['title'].userIds = [];
|
me.form_['title'].userIds.push(data_.data.data.roleName);
|
me.form_['title'].userIds.push(data_.data.data.userId);
|
me.dialogFormTitle = true;
|
})
|
.catch(error =>{
|
window.console.log(error);
|
})
|
}
|
else {
|
this.form_ = {title: {mustAttach: true}};
|
this.dialogFormTitle = true;
|
}
|
},
|
parttimeChange(code) {
|
if (!this.form_[code].parttime ) {
|
this.form_[code].parttimeUser = [];
|
}
|
},
|
parttimeChange_() {
|
|
},
|
saveFormTitle() {
|
let me = this;
|
//保存立题评估数据
|
let form_array = [];
|
let is_null1 = true;
|
|
let itm_k = "title";
|
let ref_k = "ref_" + itm_k;
|
this.$refs[ref_k].validate((valid) => {
|
if (!valid) {
|
is_null1 = false;
|
}
|
});
|
|
let form_obj = {};
|
form_obj = this.form_[itm_k];
|
if (!form_obj.mustAttach) {
|
form_obj.mustAttach = false;
|
}
|
if (form_obj.startTime) {
|
form_obj.startTime = this.$moment(form_obj.startTime).format('YYYY-MM-DD');
|
}
|
if (form_obj.endTime) {
|
form_obj.endTime = this.$moment(form_obj.endTime).format('YYYY-MM-DD');
|
}
|
|
if (form_obj.parttimeUser && form_obj.parttimeUser.length>0) {
|
let parttimeUser_ = "";
|
for (let i = 0; i<form_obj.parttimeUser.length; i++) {
|
if (parttimeUser_ == "") {
|
parttimeUser_ = form_obj.parttimeUser[i];
|
}
|
else {
|
parttimeUser_ = parttimeUser_ + ";" + form_obj.parttimeUser[i];
|
}
|
}
|
form_obj.parttimeUser = parttimeUser_;
|
}
|
|
if (form_obj.userIds) {
|
let leng = form_obj.userIds.length;
|
|
form_obj.roleName = form_obj.userIds[leng-2];
|
form_obj.userId = form_obj.userIds[leng-1];
|
}
|
form_obj.type = itm_k;
|
form_obj.parentId = this.xmId;
|
|
if (is_null1) {
|
let url = "/api/topic/saveLinkTitle/" + this.selectOne.id;
|
|
this.$axios.post(url, form_obj)
|
.then(data_ => {
|
window.console.log(data_);
|
me.dataList = [];
|
me.pageno = 1;
|
me.getData(this.formInline);
|
})
|
.catch(error =>{
|
window.console.log(error);
|
})
|
}
|
},
|
|
addProject() {
|
this.rowData = {
|
parentid: this.selectOne.id,
|
desp: this.selectOne.desp,
|
name: this.selectOne.title,
|
//objective:this.selected.reseachType,
|
//items:[this.$moment(this.selected.startTime).format('YYYY-MM-DD'),this.$moment(this.selected.endTime).format('YYYY-MM-DD')]
|
}
|
|
this.dialog_1 = true;
|
// this.dialogVisible = false;
|
},
|
closeNewProject() {
|
this.dialog_1 = false;
|
let me = this;
|
me.dataList = [];
|
me.pageno = 1;
|
me.getData(this.formInline, true);
|
// this.getData();
|
},
|
download(val) {
|
if(val) {
|
this.$refs.frame_export.src = "/api/api/file/download/" + val.id;
|
}else {
|
this.$message({message:'获取地址失败', type: 'warning'});
|
}
|
|
},
|
uploadSuccess() {
|
this.dialogFormVisible = false;
|
},
|
onChange(file, fileList) {
|
this.fileList = [];
|
this.fileList = fileList;
|
},
|
canExam() {
|
return true;
|
},
|
|
createTopic() {
|
let me = this;
|
var userId = localStorage.getItem('userId');
|
if(!userId) {
|
this.$router.push('/login');
|
}
|
this.form.userId = userId;
|
let params = this.form;
|
|
if(this.fileList.length == 0) {
|
//不带附件
|
let url = "/api/topic/add";
|
this.$axios.get(url, {
|
params
|
})
|
.then(data_ => {
|
if(data_.data.success) {
|
this.$message('创建成功');
|
me.dialogFormVisible = false;
|
}else {
|
this.$message({message:'话题创建失败', type: 'warning'});
|
}
|
}).catch(error => {
|
})
|
}else {
|
this.$refs.upload.submit();
|
}
|
},
|
handleRemove(file, fileList) {
|
},
|
handlePreview(file) {
|
},
|
handleExceed(files, fileList) {
|
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
|
},
|
beforeRemove(file, fileList) {
|
return this.$confirm(`确定移除 ${ file.name }?`);
|
},
|
load() {
|
let me = this;
|
if(me.pageno < me.maxPage) {
|
me.pageno++;
|
}
|
this.query_(false);
|
},
|
showItem(one) {
|
this.dialogVisible = true;
|
this.selectOne = one;
|
},
|
showLinkItem(one) {
|
let me = this;
|
if(one.examine && one.linkId){
|
this.rowData = {
|
id: one.linkId,
|
}
|
this.dialogProdetail = true;
|
}
|
else if (one.titleId) {
|
this.selectOne = one;
|
let url = "/api/detail/get/" + one.titleId;
|
this.$axios.get(url)
|
.then(data_ => {
|
window.console.log(data_);
|
me.form_ = {
|
title: data_.data.data
|
}
|
if (data_.data.data.parttimeUser) {
|
me.form_['title'].parttimeUser = data_.data.data.parttimeUser.split(";");
|
}
|
else {
|
me.form_['title'].parttimeUser = [];
|
}
|
|
me.form_['title'].userIds = [];
|
me.form_['title'].userIds.push(data_.data.data.roleName);
|
me.form_['title'].userIds.push(data_.data.data.userId);
|
me.dialogFormTitle2 = true;
|
})
|
.catch(error =>{
|
window.console.log(error);
|
})
|
}
|
},
|
createNew() {
|
this.form = {};
|
this.dialogFormVisible = true;
|
},
|
formatter(one){
|
if(one.examine && one.linkId){
|
return "已关联项目";
|
}
|
else if (one.titleId) {
|
return "已立题评估";
|
}
|
},
|
empty_() {
|
this.formInline = {};
|
this.query_(true);
|
},
|
query_(isempty) {
|
let me = this;
|
if (isempty) {
|
me.pageno = 1;
|
me.dataList = [];
|
}
|
me.getData(this.formInline, isempty);
|
// this.getData(this.formInline, true);
|
},
|
canEdit() {
|
return this.selectOne.userId == this.userId;
|
},
|
edit(){
|
this.form = {
|
title: this.selectOne.title,
|
desp: this.selectOne.desp,
|
id: this.selectOne.id
|
};
|
this.dialogFormVisible = true;
|
this.dialogVisible = false;
|
},
|
closeCreate() {
|
// this.dialogFormVisible = false;
|
// this.getData();
|
let me = this;
|
me.dataList = [];
|
me.pageno = 1;
|
me.getData(this.formInline, true);
|
},
|
|
setRefresh() {
|
this.isRefresh = false;
|
this.isRefresh = true;
|
},
|
getData(query,empty) {
|
this.setRefresh();
|
/* if (empty) {
|
this.dataList = [];
|
} */
|
this.selectOne = {};
|
let me = this;
|
this.loading = true
|
this.loading_table = true;
|
|
me.dialogFormTitle = false;
|
me.dialogFormTitle2 = false;
|
|
me.dialogVisible = false;
|
// let pageno = this.pagenum;
|
let url = "/api/topic/page/" + this.pageno;
|
let params = {};
|
if(query && (query.title || query.desp)){
|
params.title = query.title;
|
params.desp = query.desp;
|
}
|
this.$axios.get(url, {
|
params
|
})
|
.then(data_ => {
|
if(data_.data.success) {
|
if (empty) {
|
me.dataList = [];
|
}
|
me.dataList.push.apply(me.dataList, data_.data.data.records)
|
me.total = data_.data.data.total;
|
me.pageno = data_.data.data.pageno;
|
me.maxPage = data_.data.data.maxPage;
|
}
|
me.loading = false
|
}).catch(error => {
|
me.loading = false
|
})
|
},
|
|
//单一事件
|
title_titleType(val) {
|
if (val == "针对客户感兴趣的题目范围") {
|
this.titleInput_ = "一个人群信息或一个干预信息";
|
}
|
else if (val == "针对客户既定的题目方向") {
|
this.titleInput_ = "提供题目的 PICOS 信息";
|
}
|
},
|
|
|
}
|
}
|
</script>
|
|
<style>
|
.grid-content{
|
text-align: left;
|
padding: 5px;
|
}
|
|
.grid-content_text {
|
font-weight: bold;
|
font-size: 14px;
|
font-style: italic;
|
color: #000;
|
}
|
.grid-content_text:hover {
|
color: #409EFF;
|
cursor:pointer;
|
}
|
.grid-content_time {
|
font-weight: bold;
|
color: #909399;
|
}
|
.grid-content_exam {
|
color: #00aaff;
|
font-size: 14px;
|
}
|
.grid-content_exam:hover {
|
font-weight: bold;
|
cursor:pointer;
|
}
|
|
.z_grid-content1{
|
display:table-cell;
|
vertical-align:bottom;
|
height: 30px;
|
}
|
.z_grid-content2{
|
color: #83878a;
|
font-size: 14px;
|
padding: 0px;
|
min-height: 24px;
|
height: 24px;
|
line-height: 24px;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
}
|
.content{
|
|
}
|
|
.form-inline {
|
text-align: left;
|
}
|
|
.list {
|
|
}
|
.list-item {
|
margin-top: 0px;
|
padding-bottom: 5px;
|
border-bottom: 1px solid #c3c5c7;
|
}
|
|
.handleClose {
|
margin: 10px;
|
text-align: left;
|
margin-left: 30%;
|
}
|
.handleClose .el-dialog__body {
|
padding: 10px 20px;
|
}
|
.handleClose .el-divider--horizontal{
|
margin: 5px;
|
}
|
</style>
|