edit.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <div >
  3. <basicDetails
  4. ref="details"
  5. titleText="企业设置"
  6. :oldFormPath="null"
  7. :editData="mainData"
  8. :mainAreaData="mainAreaData"
  9. turnPageId=""
  10. idname="sys_enterpriseid"
  11. ownertable="sys_site"
  12. tags=""
  13. :tabs="['联系人','地址管理','财务信息']"
  14. @onEditSuccess="queryMainData($route.query.id)"
  15. :pageChange="true"
  16. >
  17. <template #d_head>
  18. <el-row :gutter="20">
  19. <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
  20. <el-col :span="5">
  21. <el-form-item label="企业名称:" prop="enterprisename">
  22. <el-input v-model="form.enterprisename" placeholder="企业名称"></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="5">
  26. <el-form-item label="企业简称:" prop="abbreviation">
  27. <el-input v-model="form.abbreviation" placeholder="企业简称"></el-input>
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="5">
  31. <el-form-item label="法人:" prop="contact">
  32. <el-input v-model="form.contact" placeholder="法人"></el-input>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="24">
  36. <div style="display:flex;align-items: center;">
  37. <p class="inline-16">企业操作页LOGO:</p>
  38. <uploadFile v-if="show" style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sys_site',ownerid:siteinfo.siteuid,usetype:'actionlogo'}" @onSuccess="uploadSuccess"></uploadFile>
  39. <div v-else class="image-panel">
  40. <i class="el-icon-error close-btn" @click="deleteFileLink"></i>
  41. <img v-show="img.usetype === 'actionlogo'" v-for="img in siteinfo.attinfos" :key="img.index" style="width:100%" :src="img.url" alt="">
  42. </div>
  43. </div>
  44. <small style="display:block;margin-top:20px" class="info">注:建议上传图片大小1024x1024,大小不超过2M,格式为JPG/PNG</small>
  45. </el-col>
  46. </el-form>
  47. </el-row>
  48. </template>
  49. <div slot="customOperation" >
  50. <el-button type="warning" size="small" @click="submit">保存</el-button>
  51. </div>
  52. <div slot="slot0" >
  53. <contacts :data="form"></contacts>
  54. </div>
  55. <div slot="slot1" >
  56. <addressManage :data="form"></addressManage>
  57. </div>
  58. <div slot="slot2" >
  59. <financialInfo :data="form"></financialInfo>
  60. </div>
  61. </basicDetails>
  62. </div>
  63. </template>
  64. <script>
  65. import {mapGetters} from 'vuex'
  66. import uploadFile from '../../../../components/upload/hw_obs_upload.vue'
  67. import contacts from '../components/contacts/index'
  68. import addressManage from '../components/addressManage/index'
  69. import financialInfo from '../components/financialInfo/index'
  70. export default {
  71. components:{
  72. uploadFile,
  73. contacts,
  74. addressManage,
  75. financialInfo
  76. },
  77. computed:{
  78. ...mapGetters({
  79. siteinfo:'siteinfo'
  80. }),
  81. show () {
  82. console.log(this.siteinfo);
  83. if (this.siteinfo.attinfos.some(item=>item.usetype === 'actionlogo')) {
  84. return false
  85. } else {
  86. return true
  87. }
  88. }
  89. },
  90. data () {
  91. return {
  92. dialogEditVisible:false,
  93. form:{},
  94. rules:{
  95. enterprisename:[
  96. { required: true, message: '请输入企业名称', trigger: 'blur' },
  97. ],
  98. abbreviation:[
  99. { required: true, message: '请输入企业简称', trigger: 'blur' },
  100. ],
  101. contact:[
  102. { required: true, message: '请输入法人', trigger: 'blur' },
  103. ],
  104. /*sitename:[
  105. { required: true, message: '请输入企业简称', trigger: 'blur' }
  106. ]*/
  107. },
  108. folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
  109. mainData:{},
  110. mainAreaData:{},
  111. basicInfo:{}
  112. }
  113. },
  114. methods:{
  115. submit () {
  116. console.log(this.form)
  117. this.$refs['form'].validate(async (valid) => {
  118. if (!valid) return false;
  119. const res = await this.$api.requested({
  120. "id": 20221022165303,
  121. "content": this.form
  122. })
  123. this.tool.showMessage(res,()=>{
  124. this.$emit('onSuccess')
  125. this.$store.dispatch('changeDetailDrawer',false)
  126. })
  127. });
  128. },
  129. async queryMainData(id) {
  130. const res = await this.$api.requested({
  131. "id": 20221022165203,
  132. "content": {
  133. }
  134. })
  135. this.form = {
  136. "address": res.data.address,
  137. "abbreviation": res.data.abbreviation,
  138. "city": res.data.city,
  139. "changeby": res.data.changeby,
  140. "county": res.data.county,
  141. "phonenumber": res.data.phonenumber,
  142. "enterprisename": res.data.enterprisename,
  143. "sys_enterpriseid":res.data.sys_enterpriseid,
  144. "province": res.data.province,
  145. "contact": res.data.contact,
  146. "taxno": res.data.taxno
  147. }
  148. this.mainData = res.data
  149. },
  150. async deleteFileLink (item) {
  151. console.log(this.$route.query.basicInfo)
  152. const res = await this.$api.requested({
  153. "classname": "system.attachment.Attachment",
  154. "method": "deleteFileLink",
  155. "content": {
  156. "linksids":[this.siteinfo.attinfos[0].linksid]
  157. }
  158. })
  159. /*res.code === 1?this.$emit('onSuccess'):''*/
  160. res.code === 1?this.queryImg():''
  161. },
  162. uploadSuccess () {
  163. this.$emit('onSuccess')
  164. setTimeout(() => {
  165. this.form = Object.assign({},this.form,this.siteinfo)
  166. }, 100);
  167. },
  168. async queryImg(){
  169. const res = await this.$api.requested({
  170. "classname": "webmanage.site.site",
  171. "content": {},
  172. "method": "querySite",
  173. })
  174. this.show = true
  175. }
  176. },
  177. mounted() {
  178. /* this.form = Object.assign({},this.form,this.siteinfo)*/
  179. console.log(this.$route.query.basicInfo,'输出')
  180. this.basicInfo = this.$route.query.basicInfo
  181. this.queryMainData()
  182. }
  183. }
  184. </script>
  185. <style scoped>
  186. .dialog-footer{
  187. margin-top: 50px;
  188. text-align: center;
  189. }
  190. </style>