doum
2025-09-26 9057e04efad1b7d61c77a72e5c37a504d0aee935
admin/src/components/base/BaseOpera.vue
@@ -1,5 +1,6 @@
<script>
export default {
  name: 'BaseOpera',
  data () {
    return {
      title: '',
@@ -13,18 +14,12 @@
      }
    }
  },
  // watch: {
  //   visible() {
  //     console.log(this.visible);
  //   }
  // },
  watch: {
    $route (to, from) {
      this.close()
    }
  },
  methods: {
    // 配置
    /**
     * 配置
     *
     * @param extParams 配置参数
     */
    config (extParams = {}) {
      if (extParams == null) {
        throw new Error('Parameter can not be null of method \'config\' .')
@@ -32,17 +27,14 @@
      if (extParams.api == null) {
        throw new Error('Missing config option \'api\'.')
      }
      if(extParams.api.indexOf('@/',0) === 0){
        this.api = require(extParams.api)
      }else {
        this.api = require('@/api' + extParams.api)
      }
      this.api = require('@/api' + extParams.api)
      extParams['field.id'] && (this.configData['field.id'] = extParams['field.id'])
    },
    /**
     * 打开窗口
     * @title 窗口标题
     * @target 编辑的对象
     *
     * @param title 窗口标题
     * @param target 行对象(仅编辑需该参数)
     */
    open (title, target) {
      this.title = title
@@ -62,49 +54,63 @@
        }
      })
    },
    close () {
      this.visible = false
    },
    // 确认新建/修改
    /**
     * 确认(点击确认按钮后触发)
     */
    confirm () {
      if (this.form.id == null || this.form.id === '') {
      if (this.form[this.configData['field.id']] == null || this.form[this.configData['field.id']] === '') {
        this.__confirmCreate()
        return
      }
      this.__confirmEdit()
    },
    // 确认新建
    /**
     * 确认新建
     *
     * @private
     */
    __confirmCreate () {
      this.$refs.form.validate((valid) => {
        // debugger
        if (!valid) {
          return
        }
        // console.log(this.form);
        // debugger
        // 调用新建接口
        this.isWorking = true
        var that = this
        this.api.create(this.form)
          .then(() => {
            this.visible = false
            this.$tip.apiSuccess('新建成功')
            this.$emit('success')
            // that.$tip.apiSuccess('新建成功')
            // that.$dialog.actionConfirmButton('是否停留该页面继续新建数据?', '新建成功','继续添加','关闭返回')
            //   .then(() => {
                that.$refs.form.resetFields()
                that.visible = false
                that.form[this.configData['field.id']] = null
                that.$emit('success')
              // })
              // .catch(() => {
              //   that.visible = false
              //   that.$emit('success')
              // })
          })
          .catch(e => {
            // this.$tip.apiFailed(e)
            this.$tip.apiFailed(e)
          })
          .finally(() => {
            this.isWorking = false
          })
      })
    },
    // 确认修改
    /**
     * 确认修改
     *
     * @private
     */
    __confirmEdit () {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        // 调用新建接口
        // 调用更新接口
        this.isWorking = true
        this.api.updateById(this.form)
          .then(() => {
@@ -113,7 +119,7 @@
            this.$emit('success')
          })
          .catch(e => {
            // this.$tip.apiFailed(e)
            this.$tip.apiFailed(e)
          })
          .finally(() => {
            this.isWorking = false