| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | <template>  <a-modal    :title="modalTitle"    :width="900"    :visible="visible"    :confirmLoading="confirmLoading"    ok-text="保存"    cancel-text="关闭"    @ok="handleSubmit"    @cancel="handleCancel"    :maskClosable="false"  >    <a-spin :spinning="formLoading">      <a-form :form="form">        <a-form-item          :required="true"          label="所属类型"          :labelCol="labelCol"          :wrapperCol="wrapperCol"          has-feedback        >          <a-select            style="width: 100%"            placeholder="请选择所属类型"            v-decorator="['systemDictType', {rules: [{ required: true, message: '请选择所属类型!' }]}]"          >            <a-select-option              v-for="(item,index) in typeList"              :key="index"              :value="item.code"            >{{ item.name }}</a-select-option>          </a-select>        </a-form-item>        <a-form-item label="分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>          <a-input            placeholder="请输入分类名称"            v-decorator="['systemDictClassify', {rules: [{required: true, message: '请输入分类名称!'}]}]"          />        </a-form-item>        <a-form-item label="子分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>          <a-input            placeholder="请输入子分类名称"            v-decorator="['systemDictSubclassify', {rules: [{required: true, message: '请输入子分类名称!'}]}]"          />        </a-form-item>        <a-form-item          :labelCol="labelCol"          :wrapperCol="wrapperCol"          label="排序"          :hasFeedback="true"          :required="true"        >          <a-input            placeholder="请输入排序号"            v-decorator="['systemDictSort', {rules: [{validator: checkSortIndex}]}]"          />        </a-form-item>        <a-form-item label="是否上线" :labelCol="labelCol" :wrapperCol="wrapperCol" :required="true">          <a-radio-group name="systemDictIsLine" v-decorator="['systemDictIsLine',{ initialValue: 1 }]">            <a-radio :value="1">上线</a-radio>            <a-radio :value="0">下线</a-radio>          </a-radio-group>        </a-form-item>      </a-form>    </a-spin>  </a-modal></template><script>import homeApi from '@/api/homeApi'export default {  data () {    return {      modalTitle: '新增类型字典',      typeList: homeApi.systemTypeList,      labelCol: {        xs: { span: 24 },        sm: { span: 5 }      },      wrapperCol: {        xs: { span: 24 },        sm: { span: 15 }      },      visible: false,      confirmLoading: false,      formLoading: false,      form: this.$form.createForm(this)    }  },  mounted () {  },  methods: {    // 初始化方法    add (record) {      this.visible = true      // this.formLoading = true      this.$nextTick(() => {        this.form.setFieldsValue({ 'systemDictType': record.systemDictType })      })    },    handleSubmit () {      const {        form: { validateFields }      } = this      this.confirmLoading = true      validateFields((errors, values) => {        if (!errors) {          values.systemDictSort = parseInt(values.systemDictSort)          homeApi.addSystemDict(values)            .then(res => {              if (res.status === 200) {                this.$message.success('新增成功')                this.visible = false                this.confirmLoading = false                this.$emit('ok', values)                this.form.resetFields()              } else {                this.$message.error('新增失败:' + res.msg)              }            })            .finally(res => {              this.confirmLoading = false            })        } else {          this.confirmLoading = false        }      })    },    handleCancel () {      this.form.resetFields()      this.visible = false    },    checkSortIndex (rule, value, callback) {      var text = '请输入排序号!'      if (!value) {        callback(text)      } else if (/(^[1-9]\d*$)/.test(value)) {        callback()      } else {        text = '请输入数字'        callback(text)      }    }  }}</script>
 |