From 801770456ae3750a44e0989b0025a98ccbad24e6 Mon Sep 17 00:00:00 2001 From: bob <bob.zhang@highdatas.com> Date: 星期四, 13 八月 2020 17:13:53 +0800 Subject: [PATCH] 最新 --- src/components/square.vue | 794 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 636 insertions(+), 158 deletions(-) diff --git a/src/components/square.vue b/src/components/square.vue index 605ad3e..b764377 100644 --- a/src/components/square.vue +++ b/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:"鎻忚堪鏃跺彂鐢熺籂绾峰徃绗﹀悎鍙屾柟閰掑彑鍙戝姩鏈烘椂浠e嘲宄婚厤鐢甸棿 鍒�鐗囨満姘寸數璐规悳璞嗚厫鐨悳鐨勭湅娉曟垜閮藉彨鎵撶牬鏄寰楁壒鍙戝晢闄勫姞璐圭涓夊搴︾牬鍙戞帴鏀跺埌鍙戝湴鏂瑰氨鎼滃埌鍒板洓鐐瑰垎鍙戝伓璇诲洤", 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骞碝M鏈圖D鏃� 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 = ""; + } + }, + } } -- Gitblit v1.8.0