jiangping
2024-06-20 09da100729793848bc01b51f7b05ca3f1e7ec64f
company/src/components/business/OperaWtbApplyCheckWindow.vue
@@ -0,0 +1,265 @@
<template>
    <GlobalWindow
        :title="title"
        width="50%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <!--    退回投保    -->
        <el-form v-if="visible1==true" :model="form" ref="form1" :rules="rules1" style="width: 100%;">
          <el-form-item label="填写退回说明:" prop="backCheckInfo">
            <el-input type="textarea" v-model="form.backCheckInfo" placeholder="请输入" v-trim/>
          </el-form-item>
        </el-form>
         <el-form v-if="visible2==true" :model="form" ref="form2" :rules="rules2" style="width: 100%;">
          <el-form-item label="填写关闭说明:" prop="dealCloseInfo">
            <el-input type="textarea" v-model="form.dealCloseInfo" placeholder="请输入" v-trim/>
          </el-form-item>
        </el-form>
      <template v-slot:footer>
        <el-button type="primary" @click="doSubmit">确 定</el-button>
        <el-button @click="visible=false">取消</el-button>
      </template>
    </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { back, closeWtbForShop } from '@/api/business/insuranceApply'
export default {
  name: 'OperaWtbApplyCheckWindow',
  extends: BaseOpera,
  components: {   GlobalWindow },
  data () {
    return {
      // 表单数据
      model: {},
      falg: 0,
      rules1: {
        backCheckInfo: [
          { required: true, message: '请完善信息' }
        ]
      },
      rules2: {
        dealCloseInfo: [
          { required: true, message: '请完善信息' }
        ]
      },
      form: {
        id: null,
        backCheckInfo: '',
        dealCloseInfo: ''
      },
      visible1: false,
      visible2: false
    }
  },
  created () {
    this.config({
      api: '/business/insuranceApply',
      'field.id': 'id'
    })
  },
  methods: {
    open (title, target, flag) {
      this.visible = true
      this.model = {}
      this.form = {
        id: null,
        backBackInfo: '',
        dealCloseInfo: ''
      },
      this.model = target
      this.title = title
      this.flag = flag
      this.visible1 = false
      this.visible2 = false
      if (flag == 1) {
        this.visible1 = true
      }
      if (flag == 2) {
        this.visible2 = true
      }
    },
    doSubmit () {
      if (this.flag == 1) {
        this.$refs.form1.validate((valid) => {
          // debugger
          if (!valid) {
            return
          }
          this.backDo()
        })
      } else if (this.flag == 2) {
        this.$refs.form2.validate((valid) => {
          // debugger
          if (!valid) {
            return
          }
          this.closeDo()
        })
      }
    },
    backDo () {
      this.$dialog.messageConfirm('确认进行该操作吗?')
        .then(() => {
          this.isWorking = true
          back({ id: this.model.id, checkInfo: this.form.backCheckInfo })
            .then(response => {
              this.visible = false
              this.$emit('success')
            }).catch(err => {
              this.$tip.apiFailed(err)
            })
        })
    },
    closeDo () {
      this.$dialog.messageConfirm('确认进行该操作吗?')
        .then(() => {
          this.isWorking = true
          closeWtbForShop({ id: this.model.id, checkInfo: this.form.dealCloseInfo })
            .then(response => {
              this.visible = false
              this.$emit('success')
            }).catch(err => {
              this.$tip.apiFailed(err)
            })
        })
    },
    successEvent () {
    },
    handleSizeChange (val) {
      console.log(`每页 ${val} 条`)
    },
    handleCurrentChange (val) {
      console.log(`当前页: ${val}`)
    },
    handleClick (tab, event) {
      console.log(tab, event)
    },
    onSubmit () {
    }
  }
}
</script>
<style>
</style>
<style lang="scss" scoped>
    .form {
        width: 100%;
        display: flex;
        align-items: center;
        flex-direction: column;
        .form_span {
            width: 100%;
            display: flex;
            align-items: start;
            flex-direction: column;
            margin-bottom: 20px;
            span {
                font-size: 14px;
                &:nth-child(1) {
                    color: black;
                    margin-bottom: 5px;
                }
                &:nth-child(2) {
                    color: #8c939d;
                }
            }
        }
        .form_item {
            width: 100%;
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin: 0 !important;
            }
            .form_item_label {
                flex-shrink: 0;
                /*width: 170px;*/
                color: black;
                font-size: 14px;
                span {
                    color: red;
                    font-size: 14px;
                }
            }
            .form_item_val {
                flex: 1;
                /*height: 40px;*/
                margin-left: 20px;
                textarea {
                    width: 100%;
                    height: 70px;
                    border: 1px solid #cbcbcb;
                    padding: 10px;
                    outline: none;
                    box-sizing: border-box;
                }
                input {
                    width: 100%;
                    height: 40px;
                    outline: none;
                    border-radius: 5px;
                    border: 1px solid #cbcbcb;
                    padding: 0 20px;
                    box-sizing: border-box;
                }
            }
        }
    }
    .desc {
        width: 100%;
        .desc_item {
            width: 100%;
            display: flex;
            flex-direction: column;
            .desc_item_label {
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 10px;
                span {
                    font-size: 14px;
                    color: black;
                    margin-right: 30px;
                }
            }
            .desc_item_from {
                width: 100%;
                margin-bottom: 10px;
                .desc_item_from_page {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    justify-content: end;
                    margin-top: 10px;
                }
            }
            .desc_item_cate {
                width: 100%;
                margin-bottom: 10px;
            }
            .desc_item_search {
                width: 100%;
                margin-bottom: 20px;
            }
            .desc_item_review {
                width: 100%;
                .desc_item_review_label {
                    font-size: 20px;
                    color: black;
                    font-weight: bold;
                    margin-bottom: 15px;
                }
            }
        }
    }
</style>