zhangyanpeng
2020-04-30 eb3241b59986de83f64ab747d2521bb78a1af0b6
src/components/square.vue
@@ -12,25 +12,28 @@
               </el-form-item>
               
               <el-form-item >
                  <el-button type="primary" @click="query_">查询</el-button>
                  <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-col :span="4" >
           <el-button type="primary" @click="createNew">创建</el-button>
          </el-col>
      </el-row>
      
   <div class="infinite-list-wrapper" style="overflow:auto; height: 70vh; border-top: 1px solid #c3c5c7;">
      <div class="list" v-infinite-scroll="load" infinite-scroll-disabled="disabled">
         <div v-for="one in dataList" :key="one.id" class="list-item" @click="showItem(one)">
            <el-row >
              <el-col :span="20"><div class="grid-content z_grid-content1 grid-content_text">{{one.title}}</div></el-col>
              <el-col :span="4"><div class="grid-content z_grid-content1 grid-content_time">{{one.time}}</div></el-col>
   <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>
            <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>
@@ -38,24 +41,8 @@
      <p v-if="loading">加载中...</p>
      <p v-if="noMore">没有更多了</p>
   </div>
   <el-dialog
     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="selectOne.attachment && selectOne.attachment != ''" type="primary" @click="download">下 载</el-button>
     </span>
   </el-dialog>
   
   <el-dialog title="创建话题" :visible.sync="dialogFormVisible">
   <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>
@@ -63,41 +50,378 @@
       <el-form-item label="话题内容" :label-width="formLabelWidth">
           <el-input type="textarea"  v-model="form.desp" autocomplete="off"></el-input>
       </el-form-item>
      <el-upload
        class="upload-demo"
        :action="uploadUrl"
        :on-preview="handlePreview"
        :data="form"
        :limit="3"
        :auto-upload='false'
        ref="upload"
        :on-exceed="handleExceed"
        :file-list="fileList">
        <el-button size="small" type="primary">点击上传</el-button>
        <div slot="tip" class="el-upload__tip">不超过50M</div>
      </el-upload>
       <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">
     <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:{
@@ -105,6 +429,7 @@
               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"},
@@ -116,6 +441,7 @@
            //    {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
            //    {id:1,attachment:"",title:"11", desp:"111", time:"11111"},
             ],
            options_parttimeUser: [],
            loading: false,
            
         }
@@ -128,10 +454,220 @@
            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');
@@ -155,58 +691,134 @@
                        this.$message({message:'话题创建失败', type: 'warning'});
                     }
                  }).catch(error => {
                     console.log(error);
                  })
            }else {
               this.$refs.upload.submit();
            }
         },
          handleRemove(file, fileList) {
                 console.log(file, fileList);
               },
               handlePreview(file) {
                 console.log(file);
               },
               handleExceed(files, fileList) {
                 this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
               },
               beforeRemove(file, fileList) {
                 return this.$confirm(`确定移除 ${ file.name }?`);
               },
         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++;
            }
            query_();
            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_();
            this.query_(true);
         },
         query_() {
            this.getData(this.formInline, 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) {
            if(empty) {
            this.setRefresh();
            /* if (empty) {
               this.dataList = [];
            }
            } */
            this.selectOne = {};
            let me = this;
            this.loading = true
            this.loading_table = true;
            let pageno = this.pagenum;
            me.dialogFormTitle = false;
            me.dialogFormTitle2 = false;
            me.dialogVisible = false;
         //   let pageno = this.pagenum;
            let url = "/api/topic/page/" + this.pageno;
            let params =  {};
            if(query){
            if(query && (query.title || query.desp)){
               params.title = query.title;
               params.desp = query.desp;
            }
@@ -214,22 +826,32 @@
                  params
               })
               .then(data_ => {
                  console.log(data_);
                  if(data_.data.success) {
                     if (empty) {
                        me.dataList = [];
                     }
                     me.dataList.push.apply(me.dataList, data_.data.data.records)
                     me.t
                     otal = data_.data.data.total;
                     me.total = data_.data.data.total;
                     me.pageno = data_.data.data.pageno;
                     me.maxPage = data_.data.data.maxPage;
                  }
                     me.loading = false
               }).catch(error => {
                  console.log(error);
                     me.loading = false
               })
         },
         //单一事件
         title_titleType(val) {
            if (val == "针对客户感兴趣的题目范围") {
               this.titleInput_ = "一个人群信息或一个干预信息";
            }
            else if (val == "针对客户既定的题目方向") {
               this.titleInput_ = "提供题目的 PICOS 信息";
            }
         },
      }
   }
</script>
@@ -242,24 +864,39 @@
   
   .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;
      font-style: italic;
      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: 50px;
      height: 30px;
   }
   .z_grid-content2{
     color: #83878a;
      font-size: 14px;
      padding: 0px;
     height: 40px;
      line-height: 40px;
      min-height: 24px;
     height: 24px;
      line-height: 24px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
@@ -276,7 +913,7 @@
      
   }
   .list-item {
      margin-top: 20px;
      margin-top: 0px;
      padding-bottom: 5px;
      border-bottom: 1px solid #c3c5c7;
   }
@@ -284,6 +921,7 @@
   .handleClose {
      margin: 10px;
      text-align: left;
      margin-left: 30%;
   }
   .handleClose .el-dialog__body {
      padding: 10px 20px;