| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | </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']}]" |
| | |
| | | <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" |
| | |
| | | </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> |
| | |
| | | </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"> |
| | |
| | | </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']}]" |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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"> |
| | |
| | | </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> |
| | | |
| | |
| | | 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: [ |
| | | { |
| | |
| | | label: "针对客户既定的题目方向" |
| | | } |
| | | ], |
| | | orderBy: "", |
| | | options_orderBy: [ |
| | | { |
| | | value: "title", |
| | | label: "按名称" |
| | | }, |
| | | { |
| | | value: "", |
| | | label: "按时间" |
| | | } |
| | | ], |
| | | |
| | | titleInput_: "", |
| | | options_users: [], |
| | | |
| | |
| | | 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: { |
| | |
| | | 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); |
| | |
| | | }) |
| | | } |
| | | 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; |
| | | //保存立题评估数据 |
| | |
| | | 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_ == "") { |
| | |
| | | } |
| | | } |
| | | 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) { |
| | |
| | | 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() { |
| | |
| | | }, |
| | | uploadSuccess() { |
| | | this.dialogFormVisible = false; |
| | | this.query_(true); |
| | | }, |
| | | onChange(file, fileList) { |
| | | this.fileList = []; |
| | |
| | | createTopic() { |
| | | let me = this; |
| | | //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').catch(err => {err}); |
| | |
| | | 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'}); |
| | | } |
| | |
| | | let me = this; |
| | | if(me.pageno < me.maxPage) { |
| | | me.pageno++; |
| | | this.query_(false); |
| | | } |
| | | this.query_(false); |
| | | }, |
| | | showItem(one) { |
| | | this.dialogVisible = true; |
| | |
| | | }, |
| | | 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); |
| | |
| | | } |
| | | }, |
| | | 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 = {}; |
| | |
| | | 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 = []; |
| | |
| | | // 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) { |
| | |
| | | } |
| | | }, |
| | | |
| | | 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 = ""; |
| | | } |
| | | }, |
| | | |
| | | |
| | | } |
| | | } |