FSQStoreEdit.vue 7.2 KB

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