edit.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="inline-16">
  3. <el-button size="small" type="text" @click="onShow">{{$t('编 辑')}}</el-button>
  4. <el-drawer
  5. :title="$t(`编辑品牌`)"
  6. :visible.sync="drawer"
  7. :wrapperClosable="false"
  8. size="90%"
  9. direction="rtl"
  10. :show-close="false"
  11. append-to-body>
  12. <div class="drawer__panel">
  13. <el-form :model="form" :rules="rules" ref="form" size="mini" label-position="right" :label-width="tool.onlyZh('80px')">
  14. <el-form-item prop="brandname" :label="$t(`品牌名称`)">
  15. <el-input v-model="form.brandname" :placeholder="$t(`输入品牌名称`)" style="width:300px"></el-input>
  16. </el-form-item>
  17. <el-form-item :label="$t(`品牌logo`)">
  18. <uploadFile ref="upload" v-if="!form.attinfos || form.attinfos.length === 0" style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sa_brand_bgj',ownerid:form.sa_brand_bgjid,usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
  19. <previewImage v-else :image="form.attinfos[0]" :deletebtn="true"
  20. @onSuccess="clearCover"></previewImage>
  21. <small style="display:block;margin-top:20px" class="info">{{$t(`注:建议上传图片大小`)}}1024x1024px,{{$t('大小不超过')}}2M,{{$t('格式为')}}JPG/PNG</small>
  22. </el-form-item>
  23. </el-form>
  24. <saleclass :data="data"></saleclass>
  25. </div>
  26. <div class="fixed__btn__panel">
  27. <el-button size="small" @click="drawer = false" class="normal-btn-width">{{$t('取 消')}}</el-button>
  28. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">{{$t('确 定')}}</el-button>
  29. </div>
  30. </el-drawer>
  31. </div>
  32. </template>
  33. <script>
  34. import uploadFile from '../../../components/upload/hw_obs_upload.vue'
  35. import previewImage from '@/components/previewImage/index.vue'
  36. import saleclass from '../component/saleclass/index'
  37. export default {
  38. name: "edit",
  39. props:['data'],
  40. data(){
  41. return {
  42. drawer:false,
  43. folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
  44. rules:{
  45. brandname: [
  46. { required: true, message: this.$t('品牌名称不可为空'), trigger: 'blur' },
  47. ],
  48. },
  49. form:{
  50. brandname:'',
  51. attinfos:[]
  52. },
  53. }
  54. },
  55. components:{
  56. uploadFile,
  57. previewImage,
  58. saleclass
  59. },
  60. created() {
  61. },
  62. methods:{
  63. onShow(){
  64. this.drawer = true
  65. this.form = Object.assign({},this.form,this.data)
  66. },
  67. onSubmit () {
  68. this.$refs['form'].validate(async (valid) => {
  69. if (!valid) return false
  70. const res = await this.$api.requested({
  71. "id": "20220922085004",
  72. "version": 1,
  73. "content": {
  74. "sa_brand_bgjid": this.form.sa_brand_bgjid,
  75. "brandname": this.form.brandname
  76. }
  77. })
  78. this.tool.showMessage(res, () => {
  79. this.ownerid = res.data
  80. this.drawer = false
  81. this.$emit('onSuccess')
  82. })
  83. })
  84. },
  85. uploadSuccess(res){
  86. this.form.attinfos = JSON.parse(res.attinfos).data
  87. this.$refs['upload'].dialogUploadVisible = false
  88. },
  89. clearCover () {
  90. this.form.attinfos = []
  91. }
  92. }
  93. }
  94. </script>
  95. <style scoped>
  96. </style>