dockEdit.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <template>
  2. <div id="dockEdit">
  3. <el-row>
  4. <el-col :span="24">
  5. <el-col :span="24" class="back">
  6. <el-button type="primary" size="mini" @click="back()">返回</el-button>
  7. </el-col>
  8. <el-col :span="24" class="form">
  9. <el-form ref="form" :model="form" label-width="120px">
  10. <el-form-item label="对接会标题">
  11. <el-input v-model="form.title"></el-input>
  12. </el-form-item>
  13. <el-form-item label="开始时间">
  14. <el-date-picker v-model="form.start_time" type="datetime" placeholder="请选择开始时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
  15. </el-date-picker>
  16. </el-form-item>
  17. <el-form-item label="结束时间">
  18. <el-date-picker v-model="form.end_time" type="datetime" placeholder="请选择结束时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
  19. </el-date-picker>
  20. </el-form-item>
  21. <el-form-item label="报名截止时间">
  22. <el-date-picker
  23. v-model="form.join_end"
  24. type="datetime"
  25. placeholder="请选择报名截止时间"
  26. format="yyyy-MM-dd HH:mm"
  27. value-format="yyyy-MM-dd HH:mm"
  28. >
  29. </el-date-picker>
  30. </el-form-item>
  31. <el-form-item label="省份">
  32. <el-select v-model="form.province" placeholder="请选择省份" @change="changeshenge">
  33. <el-option v-for="item in option" :key="item.code" :label="item.name" :value="item.code"> </el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item label="市">
  37. <el-select v-model="form.place" placeholder="请选择市">
  38. <el-option v-for="item in options" :key="item.code" :label="item.name" :value="item.code"> </el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item label="简介">
  42. <el-input type="textarea" v-model="form.desc"></el-input>
  43. </el-form-item>
  44. <el-form-item label="负责人">
  45. <el-input v-model="form.adminuser" placeholder="请输入用户名"></el-input>
  46. </el-form-item>
  47. <el-form-item label="负责人手机号">
  48. <el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号" disabled> </el-input>
  49. </el-form-item>
  50. <el-form-item label="密码">
  51. <el-input v-model="form.passwd" placeholder="请输入密码" show-password disabled></el-input>
  52. </el-form-item>
  53. <el-form-item label="对接会视频">
  54. <upload :limit="1" :data="form.file_path" type="file_path" listType="" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
  55. </el-form-item>
  56. <el-form-item>
  57. <el-button type="primary" @click="onSubmit()">提交</el-button>
  58. </el-form-item>
  59. </el-form>
  60. </el-col>
  61. </el-col>
  62. </el-row>
  63. </div>
  64. </template>
  65. <script>
  66. import upload from '@/components/upload.vue';
  67. import { mapState, createNamespacedHelpers } from 'vuex';
  68. const { mapActions: place } = createNamespacedHelpers('place');
  69. const { mapActions: dock } = createNamespacedHelpers('dock');
  70. const { mapActions: authUser } = createNamespacedHelpers('authUser');
  71. export default {
  72. name: 'dockEdit',
  73. props: {
  74. dockid: null,
  75. },
  76. components: {
  77. upload,
  78. },
  79. data: function() {
  80. return {
  81. form: {},
  82. option: [],
  83. options: [],
  84. };
  85. },
  86. created() {
  87. this.searcOption();
  88. this.searchInfo();
  89. },
  90. methods: {
  91. ...place({ palcequery: 'query', transactiondtetle: 'delete' }),
  92. ...dock(['query', 'delete', 'update', 'fetch']),
  93. ...authUser({ authUserFetch: 'fetch', authUserUpdate: 'update' }),
  94. async searchInfo() {
  95. if (this.dockid) {
  96. let res = await this.fetch(this.dockid);
  97. if (this.$checkRes(res)) {
  98. this.$set(this, `form`, res.data);
  99. }
  100. }
  101. },
  102. // 提交
  103. async onSubmit() {
  104. let res = await this.update(this.form);
  105. if (this.$checkRes(res)) {
  106. let data = {};
  107. data.id = this.user.uid;
  108. data.name = this.form.adminuser;
  109. let arr = await this.authUserUpdate(data);
  110. if (this.$checkRes(arr)) {
  111. this.$message({
  112. message: '修改信息成功',
  113. type: 'success',
  114. });
  115. this.back();
  116. }
  117. }
  118. },
  119. // 返回
  120. back() {
  121. this.$emit('back');
  122. },
  123. async searcOption() {
  124. let level = 1;
  125. let res = await this.palcequery({ level });
  126. this.$set(this, `option`, res.data);
  127. },
  128. async changeshenge(value) {
  129. let level = 2;
  130. let parent = value;
  131. let res = await this.palcequery({ level, parent });
  132. this.$set(this, `options`, res.data);
  133. },
  134. uploadSuccess({ type, data }) {
  135. console.log(type, data);
  136. this.$set(this.form, `${type}`, data.uri);
  137. },
  138. },
  139. computed: {
  140. ...mapState(['user']),
  141. pageTitle() {
  142. return `${this.$route.meta.title}`;
  143. },
  144. },
  145. metaInfo() {
  146. return { title: this.$route.meta.title };
  147. },
  148. };
  149. </script>
  150. <style lang="less" scoped>
  151. .back {
  152. text-align: right;
  153. margin: 0 0 10px 0;
  154. }
  155. </style>