Nenhuma Descrição

closeOperate.vue 4.7KB

    <template> <el-dialog :title="showStep ? '关闭需求' : '请选择关闭原因'" class="dialog-box" :visible.sync="operDialogVisible" width="420px" :close-on-click-modal="false" @close="closedDiloag"> <el-form class="step-01" v-if="showStep" v-loading="stepOneLoading"> <p class="tip-txt">关闭后,该需求将不能被专家和机构看到。<br />您确定要关闭吗?</p> <div class="el-btn-col"> <div class="el-btn-col-box" align="center"> <el-button type="primary" @click="closedDiloag">取消</el-button> <el-button type="info" @click="nextStep">确定</el-button> </div> </div> </el-form> <el-form ref="formTwo" :model="formTwo" class="step-02" v-if="!showStep" v-loading="stepTwoLoading"> <el-form-item class="con-txt"> <el-checkbox-group v-model="formTwo.selectReasons" @change="handleCheckedChange"> <el-checkbox label="1">没有对接合适的专家和机构</el-checkbox> <el-checkbox label="2">没有联系上对接的专家和机构</el-checkbox> <el-checkbox label="3">已通过其他渠道解决</el-checkbox> <el-checkbox label="4">其他:</el-checkbox> </el-checkbox-group> <el-input v-show="textareaShow" style="margin-bottom: 10px;" type="textarea" :rows="2" placeholder="请填写其他原因" v-model="formTwo.textval"> </el-input> </el-form-item> <div class="el-btn-col"> <div class="el-btn-col-box" align="center"> <el-button type="primary" @click="submitReq">提交</el-button> <el-button type="info" @click="closedDiloag">关闭</el-button> </div> </div> </el-form> </el-dialog> </template> <script> export default { data() { return { operDialogVisible: false, showStep: true, stepOneLoading: false, stepTwoLoading: false, textareaShow: false, demandId: '', formTwo: { selectReasons: [], textval: '' } } }, methods: { openDiag(id) { if (id) { this.demandId = id } this.formTwo.selectReasons = [] this.formTwo.textval = '' this.operDialogVisible = true this.showStep = true }, nextStep() { var that = this that.stepOneLoading = true this.$axios.post('/ajax/demand/close', { id: that.demandId }, function(res) { that.stepOneLoading = false if (res.success && res.data) { that.showStep = false that.$parent.getdemandInfo() } else { that.$message.error('关闭需求操作失败,请重试') } }) }, handleCheckedChange(val) { if (val.indexOf('1') > -1) { this.textareaShow = true for (let i = 0; i < val.length; ++i) { if (val[i] === '1') { val[i] === this.formTwo.textval } } } else { this.textareaShow = false } this.formTwo.selectReasons = val }, submitReq() { var that = this var selectR = that.formTwo.selectReasons var textR = that.formTwo.textval if (selectR.indexOf('1') > -1) { if (textR === '') { that.$message({ message: '请填写其他关闭原因', type: 'warning' }) return } else { for (let i = 0; i < selectR.length; ++i) { if (selectR[i] === '1') { selectR[i] = textR } } } } that.stepTwoLoading = true this.$axios.post('/ajax/demand/close/reason', { id: that.demandId, reason: selectR }, function(res) { that.stepTwoLoading = false if (res.success) { that.showStep = false that.closedDiloag() } else { that.$message.error('关闭需求操作失败,请重试') } }) }, closedDiloag() { this.operDialogVisible = false if (!this.showStep) { this.$refs['formTwo'].resetFields() this.$refs['formTwo'].clearValidate() } } } } </script> <style> .dialog-box .el-dialog__body{ padding: 10px 20px 20px; } .dialog-box .el-button { padding: 12px 60px; } .dialog-box .tip-txt{ line-height: 20px; font-size: 14px; margin-bottom: 20px; } .dialog-box .con-txt{ padding: 2px 10px; background: #f1f1f1; } .dialog-box .con-txt .el-checkbox-group .el-checkbox{ width:100%; } .dialog-box .con-txt .el-checkbox-group .el-checkbox + .el-checkbox { margin-left:0; } </style>