coding.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div class="hui-flex hui-dialog">
  3. <div class="hui-flex-box hui-dialog-content">
  4. <el-form :model="form" label-position="top">
  5. <el-form-item label="年份">
  6. <el-date-picker v-model="form.year" type="year" placeholder="选择年份" :clearable="false">
  7. </el-date-picker>
  8. </el-form-item>
  9. <el-form-item label="类别">
  10. <el-select v-model="form.type" allow-create filterable placeholder="请选择"
  11. @blur="e=>selectBlur(e,form.type)">
  12. <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.name">
  13. </el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="位置">
  17. <el-select v-model="form.position" allow-create filterable placeholder="请选择"
  18. @blur="e=>selectBlur(e,form.position)">
  19. <el-option v-for="item in positionList" :key="item.id" :label="item.name" :value="item.name">
  20. </el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item label="序号">
  24. <el-input type="text" v-model="form.number"></el-input>
  25. </el-form-item>
  26. </el-form>
  27. </div>
  28. <div class="hui-dialog-submit">
  29. <el-button size="medium" @click="$emit('callback')">取 消</el-button>
  30. <el-button size="medium" type="primary" @click="submit" :loading="loading">生 成</el-button>
  31. </div>
  32. </div>
  33. </template>
  34. <script>
  35. import {
  36. getCodingList,
  37. insertCoding
  38. } from '@/httpApi/property'
  39. export default {
  40. props: ['code'],
  41. data() {
  42. return {
  43. form: {
  44. year: '',
  45. type: '',
  46. position: '',
  47. number: ''
  48. },
  49. loading: false,
  50. typeList: [],
  51. positionList: []
  52. }
  53. },
  54. created() {
  55. this.form.year = this.$dayjs(new Date()).format('YYYY');
  56. this.init()
  57. },
  58. methods: {
  59. init() {
  60. getCodingList({}).then(res => {
  61. if (res.state) {
  62. this.typeList = res.data.filter(node => node.type === 1);
  63. this.form.type = this.typeList[0].name;
  64. this.positionList = res.data.filter(node => node.type === 2);
  65. this.form.position = this.positionList[0].name;
  66. }
  67. })
  68. },
  69. selectBlur(e, item) {
  70. item = e.target.value;
  71. },
  72. submit() {
  73. this.loading = true;
  74. let postData = JSON.parse(JSON.stringify(this.form));
  75. if (!postData.number) {
  76. delete postData.number;
  77. }
  78. insertCoding(postData).then(this.successFunc);
  79. },
  80. successFunc(res) {
  81. this.loading = false;
  82. if (res.state) {
  83. this.$message.success('操作成功');
  84. this.$emit('callback', 'set', res.data);
  85. }
  86. }
  87. }
  88. }
  89. </script>
  90. <style lang="scss"></style>