FSQStoreEdit.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <template>
  2. <div class="FSQStoreDetail">
  3. <div class="header">
  4. <van-nav-bar
  5. class="navBar"
  6. title="仿石漆服务商详情"
  7. left-arrow
  8. @click-left="onClickLeft"
  9. right-text="保存"
  10. @click-right="clickSubmit" />
  11. </div>
  12. <div class="content">
  13. <van-form ref="tabstoreVal" @submit="onSubmit" :scroll-to-error="true" :show-error="false">
  14. <van-field readonly :value="fromData.storeCode" label="编号">
  15. <template #left-icon>
  16. <span class="van-f-red"></span>
  17. </template>
  18. </van-field>
  19. <van-field
  20. v-model="fromData.storeName"
  21. label="名称"
  22. placeholder="请输入名称"
  23. :rules="[{ required: true, message: '请输入名称' }]">
  24. <template #left-icon>
  25. <span class="van-f-red"></span>
  26. </template>
  27. </van-field>
  28. <van-field
  29. readonly
  30. clickable
  31. name="picker"
  32. :value="fromData.storeCategoryName"
  33. label="类型"
  34. placeholder="点击选择类型">
  35. <template #left-icon>
  36. <span class="van-f-red"></span>
  37. </template>
  38. </van-field>
  39. <van-field
  40. v-model="fromData.orgName"
  41. label="销售部"
  42. placeholder="请输入销售部"
  43. :rules="[{ required: true, message: '请输入销售部' }]">
  44. <template #left-icon>
  45. <span class="van-f-red"></span>
  46. </template>
  47. </van-field>
  48. <van-row style="border-bottom: 1px solid #ebedf0">
  49. <van-field
  50. rows="1"
  51. autosize
  52. type="textarea"
  53. readonly
  54. clickable
  55. name="picker"
  56. :value="fromData.chainName"
  57. label="经销商名称"
  58. placeholder="点击选择经销商名称"
  59. :rules="[
  60. {
  61. required: true,
  62. message: '请选择经销商',
  63. },
  64. ]">
  65. <template #left-icon>
  66. <span class="van-f-red"></span>
  67. </template>
  68. </van-field>
  69. </van-row>
  70. <van-field
  71. readonly
  72. clickable
  73. name="picker"
  74. :value="fromData.provinceName"
  75. label="省(州)"
  76. placeholder="点击选择省(州)">
  77. <template #left-icon>
  78. <span class="van-f-red"></span>
  79. </template>
  80. </van-field>
  81. <van-field
  82. readonly
  83. clickable
  84. name="picker"
  85. :value="fromData.cityName"
  86. label="城市"
  87. placeholder="点击选择城市">
  88. <template #left-icon>
  89. <span class="van-f-red"></span>
  90. </template>
  91. </van-field>
  92. <van-field
  93. readonly
  94. clickable
  95. name="picker"
  96. :value="fromData.districtName"
  97. label="区(县)"
  98. placeholder="点击选择区(县)">
  99. <template #left-icon>
  100. <span class="van-f-red"></span>
  101. </template>
  102. </van-field>
  103. <van-field
  104. readonly
  105. clickable
  106. name="picker"
  107. :value="fromData.townName"
  108. label="街道"
  109. placeholder="点击选择街道">
  110. <template #left-icon>
  111. <span class="van-f-red"></span>
  112. </template>
  113. </van-field>
  114. <van-field
  115. v-model="fromData.addressLine"
  116. label="地址"
  117. placeholder="请输入地址"
  118. rows="1"
  119. autosize
  120. type="textarea">
  121. <template #left-icon>
  122. <span class="van-f-red"></span>
  123. </template>
  124. </van-field>
  125. <van-field v-model="fromData.contactName" label="实际经营人">
  126. <template #left-icon>
  127. <span class="van-f-red"></span>
  128. </template>
  129. </van-field>
  130. <van-field
  131. type="tel"
  132. v-model="fromData.telephone"
  133. label="实际经营人电话"
  134. placeholder="请输入实际经营人电话"
  135. :rules="[
  136. {
  137. required: true,
  138. validator: validatePhone,
  139. message: '请输入手机号',
  140. },
  141. ]">
  142. <template #left-icon>
  143. <span class="van-f-red"></span>
  144. </template>
  145. </van-field>
  146. <van-field readonly v-model="fromData.salesmanName" label="销售员" placeholder="销售员">
  147. <template #left-icon>
  148. <span class="van-f-red"></span>
  149. </template>
  150. </van-field>
  151. </van-form>
  152. </div>
  153. </div>
  154. </template>
  155. <script>
  156. import { getById } from '@/api/index';
  157. import { updateStore } from '@/api/FSQStore';
  158. export default {
  159. data() {
  160. return {
  161. fromData: {
  162. storeCode: '',
  163. storeName: '',
  164. telephone: '',
  165. storeCategoryName: '',
  166. provinceName: '',
  167. cityName: '',
  168. districtName: '',
  169. addressLine: '',
  170. orgName: '',
  171. chainName: '',
  172. townName: '',
  173. contactName: '',
  174. salesmanName: '',
  175. },
  176. };
  177. },
  178. activated() {
  179. this.toastLoading(0, '加载中...', true);
  180. // 获取详情
  181. this.getDetail();
  182. },
  183. methods: {
  184. editorFn() {
  185. this.$router.push({
  186. path: '/addDesignerEdit',
  187. query: { id: this.$route.query.id },
  188. });
  189. },
  190. getDetail() {
  191. getById({ storeId: this.$route.query.id }).then((res) => {
  192. this.toastLoading().clear();
  193. if (res.code == 200) {
  194. this.fromData = res.data;
  195. }
  196. });
  197. },
  198. clickSubmit(values) {
  199. this.$refs.tabstoreVal.submit();
  200. },
  201. onSubmit(value) {
  202. this.toastLoading(0, '提交中...', true);
  203. this.fromData.storeId = this.$route.query.id;
  204. updateStore(this.fromData).then((res) => {
  205. this.toastLoading().clear();
  206. if (res.code == 200) {
  207. this.$dialog
  208. .confirm({
  209. title: '系统提示',
  210. message: '修改成功',
  211. showCancelButton: false,
  212. })
  213. .then(() => {
  214. this.$router.replace({
  215. path: '/storemanagementlist',
  216. });
  217. });
  218. }
  219. });
  220. },
  221. onClickLeft() {
  222. this.$router.go(-1);
  223. },
  224. },
  225. };
  226. </script>
  227. <style lang="scss" scoped>
  228. .FSQStoreDetail {
  229. display: flex;
  230. flex-direction: column;
  231. width: 100%;
  232. height: 100%;
  233. .header {
  234. height: 46px;
  235. }
  236. .content {
  237. flex: 1;
  238. overflow-y: auto;
  239. }
  240. }
  241. </style>