SparepartForm.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. <template>
  2. <view class="cell">
  3. <!-- :rules="rules" -->
  4. <u--form labelPosition="left" :model="form" ref="form1">
  5. <u-form-item
  6. label="出库类型"
  7. prop="form.outType"
  8. borderBottom
  9. @click="
  10. show.typeList = true;
  11. hideKeyboard();
  12. "
  13. ref="item1"
  14. >
  15. <u--input
  16. v-model="form.outType"
  17. disabled
  18. disableColor="#ffffff"
  19. placeholder="请选择"
  20. border="none"
  21. >
  22. </u--input>
  23. <u-icon slot="right" name="arrow-right"></u-icon>
  24. </u-form-item>
  25. <u-form-item
  26. label="仓库"
  27. prop="form.warehouse"
  28. borderBottom
  29. @click="
  30. show.whList = true;
  31. hideKeyboard();
  32. "
  33. ref="item1"
  34. >
  35. <u--input
  36. v-model="form.warehouse.name"
  37. disabled
  38. disableColor="#ffffff"
  39. placeholder="请选择"
  40. border="none"
  41. >
  42. </u--input>
  43. <u-icon slot="right" name="arrow-right"></u-icon>
  44. </u-form-item>
  45. <u-form-item
  46. label="收货人"
  47. prop="form.receiveName"
  48. borderBottom
  49. ref="item1"
  50. >
  51. <u--input
  52. v-model="form.receiveName"
  53. border="none"
  54. placeholder="请输入收货人"
  55. ></u--input>
  56. </u-form-item>
  57. <u-form-item
  58. label="联系方式"
  59. prop="form.receivePhone"
  60. borderBottom
  61. ref="item1"
  62. >
  63. <u--input
  64. v-model="form.receivePhone"
  65. border="none"
  66. placeholder="请输入联系方式"
  67. ></u--input>
  68. </u-form-item>
  69. <u-form-item
  70. label="收货时间"
  71. prop="form.receiveTime"
  72. borderBottom
  73. @click="
  74. show.receiveTime = true;
  75. hideKeyboard();
  76. "
  77. ref="item1"
  78. >
  79. <u--input
  80. v-model="form.receiveTime"
  81. disabled
  82. disableColor="#ffffff"
  83. placeholder="选择日期时间"
  84. border="none"
  85. ></u--input>
  86. <u-icon slot="right" name="arrow-right"></u-icon>
  87. </u-form-item>
  88. <u-form-item
  89. label="供应商"
  90. prop="form.supplier"
  91. borderBottom
  92. @click="
  93. show.supplierList = true;
  94. hideKeyboard();
  95. "
  96. ref="item1"
  97. >
  98. <u--input
  99. v-model="form.supplier.name"
  100. disabled
  101. disableColor="#ffffff"
  102. placeholder="请选择性别"
  103. border="none"
  104. >
  105. </u--input>
  106. <u-icon slot="right" name="arrow-right"></u-icon>
  107. </u-form-item>
  108. <u-form-item
  109. label="出库登记人"
  110. prop="form.executor"
  111. borderBottom
  112. @click="
  113. show.userList = true;
  114. hideKeyboard();
  115. "
  116. ref="item1"
  117. >
  118. <u--input
  119. v-model="form.executor.name"
  120. disabled
  121. disableColor="#ffffff"
  122. placeholder="请选择性别"
  123. border="none"
  124. >
  125. </u--input>
  126. <u-icon slot="right" name="arrow-right"></u-icon>
  127. </u-form-item>
  128. <u-form-item label="备注" prop="form.remark" borderBottom ref="item1">
  129. <u--textarea
  130. v-model="form.remark"
  131. placeholder="请输入内容"
  132. ></u--textarea>
  133. </u-form-item>
  134. </u--form>
  135. <u-action-sheet
  136. :show="show.typeList"
  137. :actions="typeList"
  138. title="请选择出库类型"
  139. @close="show.typeList = false"
  140. @select="bindSelect($event, 'typeList')"
  141. >
  142. </u-action-sheet>
  143. <u-action-sheet
  144. :show="show.userList"
  145. :actions="userList"
  146. title="请选择出库登记人"
  147. @close="show.userList = false"
  148. @select="bindSelect($event, 'userList')"
  149. >
  150. </u-action-sheet>
  151. <u-action-sheet
  152. :show="show.whList"
  153. :actions="whList"
  154. title="请选择仓库"
  155. @close="show.whList = false"
  156. @select="bindSelect($event, 'whList')"
  157. >
  158. </u-action-sheet>
  159. <u-action-sheet
  160. :show="show.supplierList"
  161. :actions="supplierList"
  162. title="请选择供应商"
  163. @close="show.supplierList = false"
  164. @select="bindSelect($event, 'supplierList')"
  165. >
  166. </u-action-sheet>
  167. <u-calendar
  168. :show="show.receiveTime"
  169. :closeOnClickOverlay="true"
  170. @confirm="confirm"
  171. @close="show.receiveTime = false"
  172. ></u-calendar>
  173. </view>
  174. </template>
  175. <script>
  176. import { get, postJ } from "@/utils/api.js";
  177. export default {
  178. data() {
  179. return {
  180. form: {
  181. goodsType: 3, //设备
  182. supplier: {},
  183. executor: {},
  184. warehouse: {},
  185. attaments: [],
  186. },
  187. show: {
  188. typeList: false,
  189. userList: false,
  190. whList: false,
  191. supplierList: false,
  192. receiveTime: false,
  193. },
  194. typeList: [], //类型
  195. userList: [], //角色
  196. whList: [], //仓库集合
  197. supplierList: [], //供应商集合
  198. rules: {
  199. "form.outType": {
  200. type: "string",
  201. required: true,
  202. message: "请选择出库类型",
  203. trigger: ["blur", "change"],
  204. },
  205. "form.warehouse": {
  206. type: "string",
  207. required: true,
  208. message: "请选择仓库",
  209. trigger: ["blur", "change"],
  210. },
  211. "form.receiveName": {
  212. type: "string",
  213. required: true,
  214. message: "请输入收货人",
  215. trigger: ["blur", "change"],
  216. },
  217. "form.receivePhone": {
  218. type: "string",
  219. required: true,
  220. message: "请输入联系方式",
  221. trigger: ["blur", "change"],
  222. },
  223. "form.receiveTime": {
  224. type: "string",
  225. required: true,
  226. message: "请选择收货时间",
  227. trigger: ["blur", "change"],
  228. },
  229. "form.supplier": {
  230. type: "string",
  231. required: true,
  232. message: "请选择供应商",
  233. trigger: ["blur", "change"],
  234. },
  235. "form.executor": {
  236. type: "string",
  237. required: true,
  238. message: "请选择出库登记人",
  239. trigger: ["blur", "change"],
  240. },
  241. },
  242. };
  243. },
  244. mounted() {
  245. this.getInit();
  246. },
  247. updated() {
  248. this.$emit("change", this.form);
  249. },
  250. methods: {
  251. async getInit() {
  252. let muster = await get(this.apiWebUrl + "/data/dict/source", {
  253. code: "wh,out_type",
  254. });
  255. this.whList = muster.data.wh;
  256. this.typeList = muster.data.out_type;
  257. let supplier = await get(this.apiWebUrl + "/data/dict/source", {
  258. code: "company_info",
  259. rela: 5,
  260. });
  261. this.supplierList = supplier.data.company_info;
  262. let user = await postJ(this.apiWebUrl + "/main/user/users", {});
  263. this.userList = user.data;
  264. },
  265. confirm(value) {
  266. this.form.receiveTime = value[0];
  267. this.show.receiveTime = false;
  268. },
  269. bindSelect($event, type) {
  270. console.log($event, type);
  271. let { name, id } = $event;
  272. switch (type) {
  273. //出库类型
  274. case "typeList":
  275. this.form.outType = name;
  276. break;
  277. //仓库
  278. case "whList":
  279. this.form.warehouse.name = name;
  280. this.form.warehouse.id = id;
  281. break;
  282. //出库登记人
  283. case "userList":
  284. this.form.executor.name = name;
  285. this.form.executor.id = id;
  286. break;
  287. //供应商
  288. case "supplierList":
  289. this.form.supplier.name = name;
  290. this.form.supplier.id = id;
  291. break;
  292. default:
  293. break;
  294. }
  295. },
  296. hideKeyboard() {
  297. uni.hideKeyboard();
  298. },
  299. },
  300. };
  301. </script>
  302. <style scoped lang="scss">
  303. .cell {
  304. padding: 0 20rpx;
  305. }
  306. /deep/ {
  307. .u-form-item__body__left {
  308. width: 160rpx !important;
  309. }
  310. .u-form-item__body__left__content__label {
  311. font-size: $uni-font-size-base;
  312. }
  313. .u-textarea,
  314. uni-textarea {
  315. padding-left: 0;
  316. padding-right: 0;
  317. }
  318. }
  319. </style>