Edit.vue 6.0 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1 2 3 4
<template>
  <div>
    <div class="head">
      <div class="title">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
        字段<span v-if="id!=0">编辑</span><span v-if="id==0">新建</span>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6
      </div>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
7
      <div class="filter"></div>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
8 9 10 11 12 13 14
      <div class="buttons">
        <a-button type="primary" @click="back()">返回</a-button>
      </div>
    </div>

    <div>
      <a-form-model ref="editForm" :model="model" :rules="rules">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15 16 17 18 19
        <a-row :gutter="colsFull">
          <a-form-model-item label="名称" prop="title" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
            <a-input v-model="model.title" />
          </a-form-model-item>
        </a-row>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
20

aaronchen2k2k's avatar
aaronchen2k2k 已提交
21 22
        <a-row :gutter="colsFull">
          <a-form-model-item label="目录" prop="folder" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
23
            <a-input v-model="model.folder">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
24
              <a-select
aaronchen2k2k's avatar
aaronchen2k2k 已提交
25 26 27
                  slot="addonAfter"
                  v-model="model.folder"
                  style="width: 400px"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
28 29 30 31
                  placeholder="请选择">
                <a-select-option v-for="(item, index) in dirs" :value="item.name" :title="item.name" :key="index">
                  {{item.name}}</a-select-option>
              </a-select>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32
            </a-input>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
33 34
          </a-form-model-item>
        </a-row>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
35

aaronchen2k2k's avatar
aaronchen2k2k 已提交
36 37 38 39 40 41
        <a-row :gutter="colsFull">
          <a-form-model-item label="文件名" prop="fileName" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
            <a-input v-model="model.fileName" />
          </a-form-model-item>
        </a-row>

aaronchen2k2k's avatar
aaronchen2k2k 已提交
42 43 44 45 46 47
        <a-row :gutter="colsFull">
          <a-form-model-item label="定义" prop="range" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
            <a-input v-model="model.range" />
          </a-form-model-item>
        </a-row>

aaronchen2k2k's avatar
aaronchen2k2k 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60
      <a-row :gutter="colsFull">
        <a-col :span="colsHalf">
          <a-form-model-item label="前缀" prop="prefix" :labelCol="labelColHalf" :wrapperCol="wrapperColHalf">
            <a-input v-model="model.prefix" />
          </a-form-model-item>
        </a-col>
        <a-col :span="colsHalf">
          <a-form-model-item label="后缀" prop="postfix" :labelCol="labelColHalf2" :wrapperCol="wrapperColHalf">
            <a-input v-model="model.postfix" />
          </a-form-model-item>
        </a-col>
      </a-row>

aaronchen2k2k's avatar
aaronchen2k2k 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73
        <a-row :gutter="colsFull">
          <a-col :span="colsHalf">
            <a-form-model-item label="循环" prop="loop" :labelCol="labelColHalf" :wrapperCol="wrapperColHalf">
              <a-input v-model="model.loop" placeholder="数字3,或区间1-3" />
            </a-form-model-item>
          </a-col>
          <a-col :span="colsHalf">
            <a-form-model-item label="循环间隔符" prop="loopfix" :labelCol="labelColHalf2" :wrapperCol="wrapperColHalf">
              <a-input v-model="model.loopfix" />
            </a-form-model-item>
          </a-col>
        </a-row>

aaronchen2k2k's avatar
aaronchen2k2k 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
      <a-row :gutter="colsFull">
        <a-col :span="colsHalf">
          <a-form-model-item label="格式" prop="format" :labelCol="labelColHalf" :wrapperCol="wrapperColHalf">
            <div class="inline">
              <a-input v-model="model.format">
                <a-select slot="addonAfter" default-value="" style="width: 80px">
                  <a-select-option value="">
                    函数
                  </a-select-option>
                  <a-select-option value=".jp">
                    md5
                  </a-select-option>
                </a-select>
              </a-input>
            </div>
          </a-form-model-item>
        </a-col>
        <a-col :span="colsHalf"></a-col>
      </a-row>

      <a-row :gutter="colsFull">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
95 96
        <a-form-model-item label="描述" prop="desc" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
          <a-input v-model="model.desc" type="textarea" rows="3" />
aaronchen2k2k's avatar
aaronchen2k2k 已提交
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
        </a-form-model-item>
      </a-row>

      <a-row :gutter="colsFull">
        <a-form-model-item class="center">
          <a-button @click="save" type="primary">保存</a-button>
          <a-button @click="reset" style="margin-left: 10px;">重置</a-button>
        </a-form-model-item>
      </a-row>
    </a-form-model>
    </div>
  </div>
</template>

<script>
import {getConfig, saveConfig} from "../../../../api/manage";
aaronchen2k2k's avatar
aaronchen2k2k 已提交
113
import {checkLoop, checkDirIsYaml} from "../../../../api/utils";
aaronchen2k2k's avatar
aaronchen2k2k 已提交
114 115 116 117 118 119 120 121 122 123 124 125 126

export default {
  name: 'ConfigEdit',
  data() {
    return {
      colsFull: 24,
      colsHalf: 12,
      labelColFull: { lg: { span: 4 }, sm: { span: 4 } },
      wrapperColFull: { lg: { span: 16 }, sm: { span: 16 } },
      labelColHalf: { lg: { span: 8}, sm: { span: 8 } },
      labelColHalf2: { lg: { span: 4}, sm: { span: 4 } },
      wrapperColHalf: { lg: { span: 12 }, sm: { span: 12 } },
      rules: {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
127
        title: [
aaronchen2k2k's avatar
aaronchen2k2k 已提交
128 129
          { required: true, message: '名称不能为空', trigger: 'change' },
        ],
aaronchen2k2k's avatar
aaronchen2k2k 已提交
130 131 132
        fileName: [
          { required: true, message: '文件名不能为空', trigger: 'change' },
        ],
aaronchen2k2k's avatar
aaronchen2k2k 已提交
133 134 135
        loop: [
          { validator: checkLoop, message: '需为正整数或其区间', trigger: 'change' },
        ],
aaronchen2k2k's avatar
aaronchen2k2k 已提交
136 137 138
        folder: [
          { validator: checkDirIsYaml, trigger: 'change' },
        ],
aaronchen2k2k's avatar
aaronchen2k2k 已提交
139 140 141
      },

      id: 0,
aaronchen2k2k's avatar
aaronchen2k2k 已提交
142
      model: { folder: 'yaml/'},
aaronchen2k2k's avatar
aaronchen2k2k 已提交
143
      dirs: [],
aaronchen2k2k's avatar
aaronchen2k2k 已提交
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
    };
  },

  computed: {
  },
  created () {
    this.id = parseInt(this.$route.params.id)
    console.log(this.id)
    this.loadData()
  },
  mounted () {

  },
  methods: {
    loadData () {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
159 160 161
      getConfig(this.id).then(json => {
        console.log('getConfig', json)
        this.model = json.data
aaronchen2k2k's avatar
aaronchen2k2k 已提交
162
        this.dirs = json.res
aaronchen2k2k's avatar
aaronchen2k2k 已提交
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
      })
    },
    save() {
      console.log('save')
      this.$refs.editForm.validate(valid => {
        console.log(valid, this.model)
        if (!valid) {
          console.log('validation fail')
          return
        }

        saveConfig(this.model).then(json => {
          console.log('saveConfig', json)
          this.back()
        })
      })
    },
    reset() {
      console.log('reset')
      this.$refs.editForm.reset()
    },
    back() {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
185
      this.$router.push({path: '/data/buildin/config/list'});
aaronchen2k2k's avatar
aaronchen2k2k 已提交
186 187 188 189 190 191 192
    },
  }
}
</script>

<style lang="less" scoped>
</style>