insert.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <template>
  2. <view>
  3. <my_form ref="form" :form="form" @isUncomplete="isUncomplete" @interrupt="interrupt" requiredFieldOnly />
  4. <view style="height: 70px;" />
  5. <view class="footer">
  6. <view class="add" @click="uncomplete || loading ? '' : submit()" :class="uncomplete ? 'forbidden' : ''"
  7. hover-class=" navigator-hover">
  8. <u-loading-icon v-if="loading" />
  9. <block v-else>
  10. 提交
  11. </block>
  12. </view>
  13. </view>
  14. </view>
  15. </template>
  16. <script>
  17. export default {
  18. data() {
  19. return {
  20. sys_enterprise_hrid: 0,
  21. form: [],
  22. uncomplete: true,
  23. loading: false,
  24. }
  25. },
  26. async onLoad(options) {
  27. uni.setNavigationBarTitle({
  28. title: options.title || '新增人员'
  29. });
  30. let form = [{
  31. key: "name",
  32. type: "text",
  33. label: "姓名",
  34. isMust: true,//是否必填
  35. value: "",
  36. }, {
  37. key: "phonenumber",
  38. type: "text",
  39. label: "手机号",
  40. isMust: true,//是否必填
  41. value: "",
  42. placeholder: "请输入收货人手机号",
  43. inputmode: 'number',
  44. verify: [this.getReg("phonenumber")]
  45. }, {
  46. key: "sex",
  47. type: "sex",
  48. label: "性别",
  49. value: "男",
  50. }, {
  51. key: "birthday",
  52. type: "date",
  53. label: "生日",
  54. value: "",
  55. placeholder: "请选择出生日期",
  56. }, {
  57. key: "email",
  58. type: "text",
  59. label: "邮箱",
  60. isMust: false,//是否必填
  61. value: "",
  62. verify: [this.getReg("email")]
  63. }, {
  64. key: "position",
  65. type: "text",
  66. label: "店内职位",
  67. isMust: false,//是否必填
  68. value: "",
  69. }, {
  70. key: "sa_storeids",
  71. type: "route",
  72. path: "/select/store/store",
  73. isRadio: false,
  74. label: "所属门店",
  75. isMust: false,//是否必填
  76. value: [],
  77. showValue: [],
  78. }];
  79. if (options.data) {
  80. let data = JSON.parse(options.data);
  81. this.sys_enterprise_hrid = data.sys_enterprise_hrid;
  82. form = form.map(v => {
  83. switch (v.key) {
  84. case 'sa_storeids':
  85. v.showValue = data.storenames ? data.storenames.split(",") : []
  86. v.value = data.sa_storeids || []
  87. break;
  88. default:
  89. v.value = data[v.key] || ''
  90. break;
  91. }
  92. return v
  93. })
  94. /* if (data.iswechatbind) form.splice(6, 0, {
  95. key: "roleids",
  96. type: "route",
  97. path: "/select/roleid/roleid?sys_enterprise_hrid=" + data.sys_enterprise_hrid,
  98. isRadio: false,
  99. label: "角色",
  100. isMust: true,//是否必填
  101. value: data.roleids || [],
  102. showValue: data.rolenames ? data.rolenames.split(",") : [],
  103. }) */
  104. }
  105. this.form = form;
  106. },
  107. methods: {
  108. isUncomplete(uncomplete) {
  109. this.uncomplete = uncomplete;
  110. },
  111. interrupt(item, selected, index) {
  112. switch (item.key) {
  113. default:
  114. item.showValue = selected.showValue || [];
  115. item.value = selected.value || [];
  116. this.$refs.form.setItem(index, item, true)
  117. break;
  118. }
  119. },
  120. submit() {
  121. this.loading = true;
  122. let that = this;
  123. this.$refs.form.submit().then(data => {
  124. data.sa_storeids = data.sa_storeids.value
  125. if (data.roleids) data.roleids = data.roleids.value
  126. this.$Http.basic({
  127. "id": 20240410164102,
  128. "content": {
  129. "sys_enterprise_hrid": this.sys_enterprise_hrid,
  130. ...data
  131. }
  132. }).then(res => {
  133. this.loading = false;
  134. console.log("加入团队", res)
  135. if (this.cutoff(res.msg)) return;
  136. this.loading = true;
  137. this.$Http.uploadUserList && this.$Http.uploadUserList();
  138. if (this.sys_enterprise_hrid == 0) {
  139. uni.showModal({
  140. title: '新增成功',
  141. content: '人员新增成功!是否立即查看',
  142. cancelText: '返回',
  143. confirmText: '查看',
  144. success: ({ confirm }) => {
  145. if (confirm) {
  146. uni.redirectTo({
  147. url: '/team/userCenter/personal?id=' + res.data.sys_enterprise_hrid,
  148. })
  149. } else {
  150. uni.navigateBack();
  151. }
  152. },
  153. })
  154. } else {
  155. this.$Http.uploadUserDetail && this.$Http.uploadUserDetail();
  156. uni.showToast({
  157. title: "编辑成功",
  158. icon: "none",
  159. duration: 1500,
  160. mask: true
  161. })
  162. setTimeout(() => {
  163. uni.navigateBack();
  164. }, 800)
  165. }
  166. })
  167. })
  168. },
  169. },
  170. }
  171. </script>
  172. <style lang="scss" scoped>
  173. .footer {
  174. position: fixed;
  175. bottom: 0;
  176. width: 100vw;
  177. height: 65px;
  178. background: #FFFFFF;
  179. box-shadow: 0px -2px 6px 1px rgba(0, 0, 0, 0.16);
  180. box-sizing: border-box;
  181. padding: 5px 10px;
  182. z-index: 999;
  183. .add {
  184. display: flex;
  185. align-items: center;
  186. justify-content: center;
  187. width: 100%;
  188. height: 45px;
  189. background: #C30D23;
  190. border-radius: 5px;
  191. font-family: PingFang SC, PingFang SC;
  192. font-size: 14px;
  193. color: #FFFFFF;
  194. }
  195. .forbidden {
  196. opacity: .6;
  197. }
  198. }
  199. </style>