bob
2020-08-13 801770456ae3750a44e0989b0025a98ccbad24e6
src/components/square.vue
@@ -7,34 +7,44 @@
                  <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 label="描述">
                  <el-input v-model="formInline.desc" 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-item label="排序">
                  <el-select v-model="orderBy" size="mini" style="width: 100px;" @change="query_(true)" placeholder="请选择">
                        <el-option
                           v-for="item in options_orderBy"
                           :key="item.value"
                           :label="item.label"
                           :value="item.value">
                        </el-option>
                     </el-select>
               </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-if="isRefresh" class="list" v-infinite-scroll="load" infinite-scroll-disabled="disabled" infinite-scroll-distance="20">
         <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="17"><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-col :span="4"><div class="grid-content z_grid-content1 grid-content_time">{{formatterTime(one.createTime)}}</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-col :span="20"><div class="grid-content z_grid-content2">{{one.comparator}}</div></el-col>
            </el-row>
         </div>
      </div>
@@ -42,34 +52,79 @@
      <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>
   <el-dialog v-if="dialogFormVisible" title="创建话题" :visible.sync="dialogFormVisible"  @close="closeCreate">
      <div class="class_form_z1">
         <el-form ref="ref_createTopic" :model="form">
            <el-form-item label="人群" :label-width="formLabelWidth"
               prop="population"
               :rules="[{required: true, message: '请输入人群', trigger: ['blur', 'change']}]"
               :show-message="false"
            >
               <el-input type="textarea" v-model="form.population" maxlength="50" show-word-limit></el-input>
            </el-form-item>
            <el-form-item label="干预或因素" :label-width="formLabelWidth"
               prop="exposure"
               :rules="[{required: true, message: '请输入干预或因素', trigger: ['blur', 'change']}]"
               :show-message="false"
            >
               <el-input type="textarea" v-model="form.exposure" maxlength="50" show-word-limit></el-input>
            </el-form-item>
            <el-form-item label="对照" :label-width="formLabelWidth"
               prop="comparator"
               :rules="[{required: true, message: '请输入对照', trigger: ['blur', 'change']}]"
               :show-message="false"
            >
               <el-input type="textarea" v-model="form.comparator" maxlength="50" show-word-limit></el-input>
            </el-form-item>
            <el-form-item label="研究类型" :label-width="formLabelWidth"
               prop="titleType"
               :rules="[{required: true, message: '请选择研究类型', trigger: ['blur', 'change']}]"
               :show-message="false"
            >
               <el-select size="small" v-model="form.titleType" style="width: 100%;">
                  <el-option label="二次研究" value="二次研究"></el-option>
                  <el-option label="一次研究" value="一次研究"></el-option>
               </el-select>
            </el-form-item>
            <el-row>
               <el-col :span="10">
                  <el-form-item label="结局" :label-width="formLabelWidth">
                     <el-select @change="outcomesChange_" multiple size="small" v-model="form.outcomes_array" style="width: 100%;">
                        <el-option label="有效性" value="有效性"></el-option>
                        <el-option label="安全性" value="安全性"></el-option>
                        <el-option label="经济性" value="经济性"></el-option>
                        <el-option label="其它" value="其它"></el-option>
                     </el-select>
                  </el-form-item>
               </el-col>
               <el-col :span="14">
                  <el-form-item v-if="form.outcomes &&  form.outcomes.indexOf('其它') != -1" label="结局补充" :label-width="formLabelWidth">
                     <el-input type="textarea" v-model="form.outcomesOther" style="width: 100%;" maxlength="50" show-word-limit></el-input>
                  </el-form-item>
               </el-col>
            </el-row>
            <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>
     <div slot="footer" class="dialog-footer" style="">
       <el-button @click="dialogFormVisible = false">取 消</el-button>
       <el-button @click="closeCreate">取 消</el-button>
       <el-button type="primary" @click="createTopic">确 定</el-button>
     </div>
   </el-dialog>
@@ -79,7 +134,7 @@
     <span>{{selectOne.title}}</span>
     <el-divider></el-divider>
    <div style="content">
       <span>{{selectOne.desp}}</span>
       <span>{{selectOne.desc}}</span>
    </div>
    
     <span slot="footer" class="dialog-footer">
@@ -89,11 +144,11 @@
     </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;">
   <el-dialog v-if="dialogFormTitle" title="立题评估" :visible.sync="dialogFormTitle" append-to-body width="850px">
      <div class="transition-box class_substep class_form_z1" style="height: 400px; overflow-y: auto; 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-row>
                  <el-col :span="22" class="z_grid-content3">
                     <el-form-item label="题目类型"
                        :rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
@@ -119,7 +174,52 @@
                        <el-input type="textarea" v-model="form_['title'].titleInput" :placeholder="titleInput_" style="width: 100%;"></el-input>
                     </el-form-item>
                  </el-col>
               </el-row> -->
               <el-form-item label="人群" :label-width="formLabelWidth"
                  prop="population"
                  :rules="[{required: true, message: '请输入人群', trigger: ['blur', 'change']}]"
               >
                  <el-input  type="textarea" v-model="form_['title'].population" maxlength="50" show-word-limit @input="change_($event)" @change="form_change('title', 'population', 'population', null)"></el-input>
               </el-form-item>
               <el-form-item label="干预或因素" :label-width="formLabelWidth"
                  prop="exposure"
                  :rules="[{required: true, message: '请输入干预或因素', trigger: ['blur', 'change']}]"
               >
                  <el-input  type="textarea" v-model="form_['title'].exposure" maxlength="50" show-word-limit @input="change_($event)" @change="form_change('title', 'exposure', 'exposure', null)"></el-input>
               </el-form-item>
               <el-form-item label="对照" :label-width="formLabelWidth"
                  prop="comparator"
                  :rules="[{required: true, message: '请输入对照', trigger: ['blur', 'change']}]"
               >
                  <el-input  type="textarea" v-model="form_['title'].comparator" maxlength="50" show-word-limit @input="change_($event)" @change="form_change('title', 'comparator', 'comparator', null)"></el-input>
               </el-form-item>
               <el-form-item label="研究类型" :label-width="formLabelWidth"
                  prop="titleType"
                  :rules="[{required: true, message: '请选择研究类型', trigger: ['blur', 'change']}]"
               >
                  <el-select  size="small" v-model="form_['title'].titleType" style="width: 100%;" @change="form_change('title', 'titleType', 'titleType', null)">
                     <el-option label="二次研究" value="二次研究"></el-option>
                     <el-option label="一次研究" value="一次研究"></el-option>
                  </el-select>
               </el-form-item>
               <el-row>
                  <el-col :span="10">
                     <el-form-item label="结局" :label-width="formLabelWidth">
                        <el-select  multiple size="small" v-model="form_['title'].outcomes_array" style="width: 100%;"  @change="form_change('title', 'outcomes', 'outcomes_array', 'arrayToStr')">
                           <el-option label="有效性" value="有效性"></el-option>
                           <el-option label="安全性" value="安全性"></el-option>
                           <el-option label="经济性" value="经济性"></el-option>
                           <el-option label="其它" value="其它"></el-option>
                        </el-select>
                     </el-form-item>
                  </el-col>
                  <el-col :span="14">
                     <el-form-item v-if="form_['title'].outcomes && form_['title'].outcomes.indexOf('其它') != -1" label="结局补充" :label-width="formLabelWidth">
                        <el-input type="textarea" v-model="form_['title'].outcomesOther" style="width: 100%;" @input="change_($event)" maxlength="50" show-word-limit  @change="form_change('title', 'outcomesOther', 'outcomesOther', null)"></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"
@@ -145,9 +245,7 @@
                     </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-form-item label="交付物">
                        <el-switch v-model="form_['title'].mustAttach"></el-switch>
                     </el-form-item>
                  </el-col>
@@ -170,30 +268,9 @@
               </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-input type="textarea" v-model="form_['title'].remark" style="width: 100%;" maxlength="50" show-word-limit></el-input>
                     </el-form-item>
                  </el-col>
                  <el-col :span="5" class="z_grid-content3">
@@ -208,21 +285,82 @@
                     </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-form>
            <div v-if="form_['title'].parttime" style="text-align: left;">
               <el-button :disabled="!form_['title'].parttime" size="small" @click="addParttime('title')">新增兼职人员</el-button>
               <el-table
                 :data="form_['title'].parttimeList"
                 :show-header="true"
                 style="width: 100%;"
                  border
               >
                 <el-table-column prop="parttimeUser" label="姓名" align="left" show-overflow-tooltip>
                     <template slot-scope="scope">
                       <div>
                           <el-select disabled size="mini" v-model="scope.row.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>
                       </div>
                     </template>
                  </el-table-column>
                 <el-table-column prop="parttimePay" label="费用" width="200" align="center">
                   <template slot-scope="scope">
                     <div>
                           <el-input-number size="small" v-model="scope.row.parttimePay" :min="1" label="支付费用"></el-input-number>
                     </div>
                   </template>
                 </el-table-column>
                  <el-table-column width="280" label="操作" align="center">
                    <template v-slot="{row}">
                      <el-row>
                        <el-tooltip class="item" effect="dark" content="删除" placement="top">
                          <el-button type="danger" size="mini" icon="el-icon-delete" circle @click="deleteParttime('title', row)"></el-button>
                        </el-tooltip>
                      </el-row>
                    </template>
                  </el-table-column>
               </el-table>
            </div>
         </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>
       <el-button :loading="loading_saveFormTitle" type="primary" @click="saveFormTitle">确 定</el-button>
         <el-button :loading="loading_addProject" 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;">
   <el-dialog v-if="dialogFormTitle2" title="立题评估" :visible.sync="dialogFormTitle2" width="850px">
      <div class="transition-box class_substep class_form_z1" style="height: 400px; overflow-y: auto; 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-row>
                  <el-col :span="22" class="z_grid-content3">
                     <el-form-item label="题目类型"
                        :rules="[{required: true, message: '请选择', trigger: ['blur', 'change']}]"
@@ -239,13 +377,57 @@
                        </el-select>
                     </el-form-item>
                  </el-col>
               </el-row>
               <el-row v-if="form_['title'].titleType">
               </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-form-item label="人群" :label-width="formLabelWidth"
                  prop="population"
                  :rules="[{required: true, message: '请输入人群', trigger: ['blur', 'change']}]"
               >
                  <el-input type="textarea" v-model="form_['title'].population" maxlength="50" show-word-limit @change="form_change('title', 'population', 'population', null)"></el-input>
               </el-form-item>
               <el-form-item label="干预或因素" :label-width="formLabelWidth"
                  prop="exposure"
                  :rules="[{required: true, message: '请输入干预或因素', trigger: ['blur', 'change']}]"
               >
                  <el-input  type="textarea" v-model="form_['title'].exposure" maxlength="50" show-word-limit @change="form_change('title', 'exposure', 'exposure', null)"></el-input>
               </el-form-item>
               <el-form-item label="对照" :label-width="formLabelWidth"
                  prop="comparator"
                  :rules="[{required: true, message: '请输入对照', trigger: ['blur', 'change']}]"
               >
                  <el-input  type="textarea" v-model="form_['title'].comparator" maxlength="50" show-word-limit @change="form_change('title', 'comparator', 'comparator', null)"></el-input>
               </el-form-item>
               <el-form-item label="研究类型" :label-width="formLabelWidth"
                  prop="titleType"
                  :rules="[{required: true, message: '请选择研究类型', trigger: ['blur', 'change']}]"
               >
                  <el-select  size="small" v-model="form_['title'].titleType" style="width: 100%;" @change="form_change('title', 'titleType', 'titleType', null)">
                     <el-option label="二次研究" value="二次研究"></el-option>
                     <el-option label="一次研究" value="一次研究"></el-option>
                  </el-select>
               </el-form-item>
               <el-row>
                  <el-col :span="10">
                     <el-form-item label="结局" :label-width="formLabelWidth">
                        <el-select  multiple size="small" v-model="form_['title'].outcomes_array" style="width: 100%;" @change="form_change('title', 'outcomes', 'outcomes_array', 'arrayToStr')">
                           <el-option label="有效性" value="有效性"></el-option>
                           <el-option label="安全性" value="安全性"></el-option>
                           <el-option label="经济性" value="经济性"></el-option>
                           <el-option label="其它" value="其它"></el-option>
                        </el-select>
                     </el-form-item>
                  </el-col>
                  <el-col :span="14">
                     <el-form-item v-if="form_['title'].outcomes && form_['title'].outcomes.indexOf('其它') != -1" label="结局补充" :label-width="formLabelWidth">
                        <el-input  type="textarea" v-model="form_['title'].outcomesOther" style="width: 100%;" maxlength="50" show-word-limit @change="form_change('title', 'outcomesOther', 'outcomesOther', null)"></el-input>
                     </el-form-item>
                  </el-col>
               </el-row>
@@ -274,9 +456,7 @@
                     </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-form-item label="交付物">
                        <el-switch v-model="form_['title'].mustAttach"></el-switch>
                     </el-form-item>
                  </el-col>
@@ -299,30 +479,9 @@
               </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-input type="textarea" v-model="form_['title'].remark" style="width: 100%;" maxlength="50" show-word-limit></el-input>
                     </el-form-item>
                  </el-col>
                  <el-col :span="5" class="z_grid-content3">
@@ -337,13 +496,102 @@
                     </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-form>
            <div v-if="form_['title'].parttime" style="text-align: left;">
               <el-button :disabled="!form_['title'].parttime" size="small" @click="addParttime('title')">新增兼职人员</el-button>
               <el-table
                 :data="form_['title'].parttimeList"
                 :show-header="true"
                 style="width: 100%;"
                  border
               >
                 <el-table-column prop="parttimeUser" label="姓名" align="left" show-overflow-tooltip>
                     <template slot-scope="scope">
                       <div>
                           <el-select disabled size="mini" v-model="scope.row.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>
                       </div>
                     </template>
                  </el-table-column>
                 <el-table-column prop="parttimePay" label="费用" width="200" align="center">
                   <template slot-scope="scope">
                     <div>
                           <el-input-number size="small" v-model="scope.row.parttimePay" :min="1" label="支付费用"></el-input-number>
                     </div>
                   </template>
                 </el-table-column>
                  <el-table-column width="280" label="操作" align="center">
                    <template v-slot="{row}">
                      <el-row>
                        <el-tooltip class="item" effect="dark" content="删除" placement="top">
                          <el-button type="danger" size="mini" icon="el-icon-delete" circle @click="deleteParttime('title', row)"></el-button>
                        </el-tooltip>
                      </el-row>
                    </template>
                  </el-table-column>
               </el-table>
            </div>
         </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>
       <el-button :loading="loading_saveFormTitle" type="primary" @click="saveFormTitle">确 定</el-button>
         <el-button :loading="loading_addProject" v-if="!selectOne.examine" type="success" @click="addProject">生成项目</el-button>
     </div>
   </el-dialog>
   <el-dialog custom-class="z_master_dialog" v-if="dialog_2_2" title="新增兼职成员" :visible.sync="dialog_2_2" append-to-body width="400px">
     <el-form ref="formParttime" :model="formInline_" class="demo-form-inline" label-position="left" label-width="90px">
       <el-form-item label="成员选择" prop="parttimeUser"
            :rules="{required: true, message: '请选择成员', trigger: ['change', 'blur']}"
         >
         <el-select size="small" v-model="formInline_.parttimeUser" style="width: 100%;">
            <el-option
               v-for="item in options_parttimeU_list"
               :key="item.id"
               :label="item.name"
               :value="item.id"
                  :disabled="item.disabled"
            ></el-option>
         </el-select>
       </el-form-item>
         <el-form-item label="支付费用" prop="parttimePay"
            :rules="{required: true, message: '请填写费用', trigger: ['change', 'blur']}"
         >
            <el-input-number size="small" v-model="formInline_.parttimePay" :min="1" label="支付费用" style="width: 100%;"></el-input-number>
       </el-form-item>
     </el-form>
     <div slot="footer" class="dialog-footer" style="text-align: right;">
       <el-button type="" size="small" @click="dialog_2_2 = false">取 消</el-button>
       <el-button type="primary" size="small" @click="saveparttime">保 存</el-button>
     </div>
   </el-dialog>
   
@@ -396,9 +644,10 @@
            dialog_1: false,
            dialog_2: false,
            uploadUrl:"/api/api/file/topicUpload",
            form:{},
            form:{outcomes: ""},
            isoutcomesOther: false,
            form_: {
               title: {mustAttach: true},
               title: {mustAttach: true, outcomes: ""},
            },
            options_titleType: [
               {
@@ -410,6 +659,18 @@
                 label: "针对客户既定的题目方向"
               }
            ],
            orderBy: "",
            options_orderBy: [
               {
                 value: "title",
                 label: "按名称"
               },
               {
                 value: "",
                 label: "按时间"
               }
            ],
            titleInput_: "",
            options_users: [],
            
@@ -426,24 +687,20 @@
            formInline:{},
            selectOne:{
               title:"biaoti",
               desp:"miaoshu",
               desc:"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"},
             ],
            dataList: [],
            options_parttimeUser: [],
            loading: false,
            
            dialog_2_2: false,
            formInline_: {},
            options_parttimeU_list: [],
            ParttimeType: "",
            loading_saveFormTitle: false,
            loading_addProject: false,
         }
      },
      computed: {
@@ -528,20 +785,27 @@
            let me = this;
            //获取立题评估数据
         //   this.form_ = {title: {mustAttach: true},};
            if (this.selectOne.titleId) {
               let url = "/api/detail/get/" + this.selectOne.titleId;
            if (this.selectOne.title_status) {
               let url = "/api/detail/get/" + this.selectOne.title_id;
               this.$axios.get(url)
               .then(data_ => {
                  window.console.log(data_);
                  me.form_ = {
                     title: data_.data.data
                  let titleObj = data_.data.data;
                  for (let itm in me.selectOne) {
                     titleObj[itm] = me.selectOne[itm];
                  }
                  if (data_.data.data.parttimeUser) {
                  if (me.selectOne.outcomes) {
                     titleObj.outcomes_array = me.selectOne.outcomes.split(";");
                  }
                  me.form_ = {
                     title: titleObj
                  }
                  /* 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);
@@ -553,18 +817,58 @@
               })
            }
            else {
               this.form_ = {title: {mustAttach: true}};
               this.form_['title'] = this.selectOne;
               this.form_['title'].mustAttach = true;
               this.dialogFormTitle = true;
            }
         },
         parttimeChange(code) {
            if (!this.form_[code].parttime ) {
               this.form_[code].parttimeUser = [];
               //this.form_[code].parttimeUser = [];
            }
         },
         parttimeChange_() {
         addParttime(code) {
            let me = this;
            this.ParttimeType = code;
            this.formInline_ = {};
            let parttimeListObj_ = {};
            if (this.form_[code].parttimeList && this.form_[code].parttimeList.length>0) {
               this.form_[code].parttimeList.map(e => {
                  parttimeListObj_[e.parttimeUser] = true;
               })
            }
            this.options_parttimeU_list = [];
            let parttimeUserList = this.options_parttimeUser;
            parttimeUserList.forEach(e => {
               let o_ = {...e};
               if (parttimeListObj_[o_.id]) {
                  o_.disabled = true;
               }
               me.options_parttimeU_list.push(o_);
            })
            this.dialog_2_2 = true;
         },
         saveparttime() {
            let is_null1 = true;
            this.$refs.formParttime.validate((valid) => {
               if (!valid) {
                  is_null1 = false;
               }
            });
            if (is_null1) {
               if (!this.form_[this.ParttimeType].parttimeList) {
                  this.form_[this.ParttimeType].parttimeList = [];
               }
               this.form_[this.ParttimeType].parttimeList.push({...this.formInline_});
               this.dialog_2_2 = false;
            }
         },
         deleteParttime(code, row) {
            const index = this.form_[code].parttimeList.findIndex(d => d.parttimeUser === row.parttimeUser);
            this.form_[code].parttimeList.splice(index, 1);
         },
         saveFormTitle() {
            let me = this;
            //保存立题评估数据
@@ -590,8 +894,11 @@
            if (form_obj.endTime) {
               form_obj.endTime = this.$moment(form_obj.endTime).format('YYYY-MM-DD');
            }
            if (form_obj.createTime) {
               form_obj.createTime = this.$moment(form_obj.createTime).format('YYYY-MM-DD');
            }
            
            if (form_obj.parttimeUser && form_obj.parttimeUser.length>0) {
            /* if (form_obj.parttimeUser && form_obj.parttimeUser.length>0) {
               let parttimeUser_ = "";
               for (let i = 0; i<form_obj.parttimeUser.length; i++) {
                  if (parttimeUser_ == "") {
@@ -602,6 +909,62 @@
                  }
               }
               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;
            form_obj.existsObject = null;
            if (is_null1) {
               form_obj.dataInfoTable = "title_service";
               me.loading_saveFormTitle = true;
               let url = "/api/topic/saveLinkTitle/" + this.selectOne.id;
               this.$axios.post(url, form_obj)
               .then(data_ => {
                 window.console.log(data_);
                  me.loading_saveFormTitle = false;
                  me.dataList = [];
                  me.pageno = 1;
                  me.getData(this.formInline);
               })
               .catch(error =>{
                 window.console.log(error);
                  me.loading_saveFormTitle = false;
               })
            }
         },
         addProject() {
            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.createTime) {
               form_obj.createTime = this.$moment(form_obj.createTime).format('YYYY-MM-DD');
            }
            
            if (form_obj.userIds) {
@@ -614,31 +977,41 @@
            form_obj.parentId = this.xmId;
            
            if (is_null1) {
               form_obj.dataInfoTable = "title_service";
               this.loading_addProject = true;
               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);
                  me.loading_addProject = false;
                  //SRS+年份后两位+两位月份+两位日期
                  let code_ = "SRS" + this.$moment(new Date).format('YYMMDD');
                  me.rowData = {
                     parentid: me.selectOne.id,
                     desc: me.selectOne.desc,
                     name: me.selectOne.title,
                     code: code_
                  }
                  me.dialog_1 = true;
               })
               .catch(error =>{
                 window.console.log(error);
                  me.loading_addProject = false;
               })
            }
         },
         addProject() {
            this.rowData = {
            /* this.rowData = {
               parentid: this.selectOne.id,
               desp: this.selectOne.desp,
               desc: this.selectOne.desc,
               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.dialog_1 = true; */
         //   this.dialogVisible = false;
         },
         closeNewProject() {
@@ -659,6 +1032,7 @@
         },
         uploadSuccess() {
            this.dialogFormVisible = false;
            this.query_(true);
         },
         onChange(file, fileList) {
            this.fileList = [];
@@ -670,9 +1044,22 @@
         
         createTopic() {
            let me = this;
            var userId = localStorage.getItem('userId');
            //var userId = localStorage.getItem('userId');
            let is_null1 = false;
            this.$refs.ref_createTopic.validate((valid) => {
              if (valid) {
                is_null1 = true;
              } else {
                return false;
              }
            });
            if(!is_null1) {
              return
            }
            let userId = this.$cookies.get('userId');
            if(!userId) {
               this.$router.push('/login');
               this.$router.push('/login').catch(err => {err});
            }
            this.form.userId = userId;
            let params = this.form;
@@ -680,13 +1067,14 @@
            if(this.fileList.length == 0) {
               //不带附件
               let url = "/api/topic/add";
               this.$axios.get(url, {
               this.$axios.post(url,
                     params
                  })
                  )
                  .then(data_ => {
                     if(data_.data.success) {
                        this.$message('创建成功');
                        this.$message({message: '创建成功', type: 'success'});
                        me.dialogFormVisible = false;
                        this.query_(true);
                     }else {
                        this.$message({message:'话题创建失败', type: 'warning'});
                     }
@@ -710,8 +1098,8 @@
            let me = this;
            if(me.pageno < me.maxPage) {
               me.pageno++;
               this.query_(false);
            }
            this.query_(false);
         },
         showItem(one) {
            this.dialogVisible = true;
@@ -719,27 +1107,38 @@
         },
         showLinkItem(one) {
            let me = this;
            if(one.examine && one.linkId){
            if(one.examine && one.link_id){
               this.rowData = {
                  id: one.linkId,
                  id: one.link_id,
               }
               this.dialogProdetail = true;
            }
            else if (one.titleId) {
            else if (one.title_id) {
               this.selectOne = one;
               let url = "/api/detail/get/" + one.titleId;
               let url = "/api/detail/get/" + one.title_id;
               this.$axios.get(url)
               .then(data_ => {
                  window.console.log(data_);
                  me.form_ = {
                     title: data_.data.data
                  let titleObj = data_.data.data;
                  for (let itm in me.selectOne) {
                     titleObj[itm] = me.selectOne[itm];
                  }
                  if (data_.data.data.parttimeUser) {
                  if (me.selectOne.outcomes) {
                     titleObj.outcomes_array = me.selectOne.outcomes.split(";");
                  }
                  me.form_ = {
                     title: titleObj
                  }
                  /* 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);
@@ -752,16 +1151,19 @@
            }
         },
         createNew() {
            this.form = {};
            this.form = {outcomes: ""};
            this.dialogFormVisible = true;
         },
         formatter(one){
            if(one.examine && one.linkId){
            if(one.examine && one.link_id){
               return "已关联项目";
            }
            else if (one.titleId) {
            else if (one.title_status) {
               return "已立题评估";
            }
         },
         formatterTime(val) {
            return this.$moment(val).format('YYYY年MM月DD日 hh:mm');
         },
         empty_() {
            this.formInline = {};
@@ -780,16 +1182,23 @@
            return this.selectOne.userId == this.userId;
         },
         edit(){
            this.form = {
            /* this.form = {
               title: this.selectOne.title,
               desp: this.selectOne.desp,
               id: this.selectOne.id
            };
               desc: this.selectOne.desc,
               id: this.selectOne.id,
               outcomes: ""
            }; */
            this.form = this.selectOne;
            if (this.form.outcomes) {
               this.form.outcomes_array = this.form.outcomes.split(";");
            }
            this.dialogFormVisible = true;
            this.dialogVisible = false;
         },
         closeCreate() {
         //   this.dialogFormVisible = false;
            this.dialogFormVisible = false;
         //   this.getData();
            let me = this;
            me.dataList = [];
@@ -818,13 +1227,16 @@
         //   let pageno = this.pagenum;
            let url = "/api/topic/page/" + this.pageno;
            let params =  {};
            if(query && (query.title || query.desp)){
            if(query && query.title){
               params.title = query.title;
               params.desp = query.desp;
               //params.desc = query.desc;
            }
            this.$axios.get(url, {
            if(this.orderBy) {
               params.orderBy = this.orderBy;
            }
            this.$axios.post(url,
                  params
               })
               )
               .then(data_ => {
                  if(data_.data.success) {
                     if (empty) {
@@ -851,6 +1263,72 @@
            }
         },
         
         outcomesChange_(val) {
            this.isoutcomesOther = false;
            if (val.length > 0) {
              for (let i = 0; i< val.length; i++) {
                if (val[i] == "其它" ) {
                  this.isoutcomesOther = true;
                }
                  if (i == 0) {
                    this.form.outcomes = val[i];
                  }
                  else {
                     this.form.outcomes += ";" + val[i];
                  }
              }
            }
            else {
               this.form.outcomes = "";
            }
         },
         change_(e){
            this.$forceUpdate();
         },
         form_change(type, key, valKey, code) {
            let val = this.form_[type][valKey];
            if (!this.form_[type].existsObject) {
               this.form_[type].existsObject = {};
            }
            if (code && code == "arrayToStr") {
               if (val.length > 0) {
                 for (let i = 0; i< val.length; i++) {
                   if (i == 0) {
                     this.form_[type].existsObject[key] = val[i];
                   }
                     else {
                        this.form_[type].existsObject[key] += ";" + val[i];
                     }
                 }
               }
               else {
                  this.form_[type].existsObject[key] = "";
               }
            }
            else {
               this.form_[type].existsObject[key] = val;
            }
         },
         outcomesArrayChange_(code) {
            let val = this.form_[code].outcomes_array;
            if (val.length > 0) {
              for (let i = 0; i< val.length; i++) {
                if (i == 0) {
                  this.form_[code].outcomes = val[i];
                }
                  else {
                     this.form_[code].outcomes += ";" + val[i];
                  }
              }
            }
            else {
               this.form_[code].outcomes = "";
            }
         },
         
      }
   }