用工平台小程序后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

264 lines
12 KiB

5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
  1. <template>
  2. <a-spin :spinning="confirmLoading">
  3. <j-form-container :disabled="formDisabled">
  4. <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
  5. <a-row>
  6. <a-col :span="24">
  7. <a-form-model-item label="老板名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName">
  8. <a-input v-model="model.userName" placeholder="请输入老板名" ></a-input>
  9. </a-form-model-item>
  10. </a-col>
  11. <a-col :span="24">
  12. <a-form-model-item label="工人名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workName">
  13. <a-input v-model="model.workName" placeholder="请输入工人名" ></a-input>
  14. </a-form-model-item>
  15. </a-col>
  16. <a-col :span="24">
  17. <a-form-model-item label="工作标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
  18. <a-input v-model="model.title" placeholder="请输入工作标题" ></a-input>
  19. </a-form-model-item>
  20. </a-col>
  21. <a-col :span="24">
  22. <a-form-model-item label="公司名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyName">
  23. <a-input v-model="model.companyName" placeholder="请输入公司名称" ></a-input>
  24. </a-form-model-item>
  25. </a-col>
  26. <a-col :span="24">
  27. <a-form-model-item label="工人出发地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workerAddress">
  28. <a-input v-model="model.workerAddress" placeholder="请输入工人出发地址" ></a-input>
  29. </a-form-model-item>
  30. </a-col>
  31. <a-col :span="24">
  32. <a-form-model-item label="出行方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelType">
  33. <j-dict-select-tag type="list" v-model="model.travelType" dictCode="travel_type" placeholder="请选择出行方式" />
  34. </a-form-model-item>
  35. </a-col>
  36. <a-col :span="24">
  37. <a-form-model-item label="上班地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workAddress">
  38. <a-input v-model="model.workAddress" placeholder="请输入上班地址" ></a-input>
  39. </a-form-model-item>
  40. </a-col>
  41. <a-col :span="24">
  42. <a-form-model-item label="行业/工种" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="industryName">
  43. <a-input v-model="model.industryName" placeholder="请输入行业/工种" ></a-input>
  44. </a-form-model-item>
  45. </a-col>
  46. <a-col :span="24">
  47. <a-form-model-item label="工人个人简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detail">
  48. <j-editor v-model="model.detail" />
  49. </a-form-model-item>
  50. </a-col>
  51. <a-col :span="24">
  52. <a-form-model-item label="工作内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workDetail">
  53. <j-editor v-model="model.workDetail" />
  54. </a-form-model-item>
  55. </a-col>
  56. <a-col :span="24">
  57. <a-form-model-item label="图片上传" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workPic">
  58. <j-image-upload isMultiple v-model="model.workPic" ></j-image-upload>
  59. </a-form-model-item>
  60. </a-col>
  61. <a-col :span="24">
  62. <a-form-model-item label="工人联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
  63. <a-input v-model="model.phone" placeholder="请输入工人联系方式" ></a-input>
  64. </a-form-model-item>
  65. </a-col>
  66. <a-col :span="24">
  67. <a-form-model-item label="招聘方联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bossPhone">
  68. <a-input v-model="model.bossPhone" placeholder="请输入招聘方联系方式" ></a-input>
  69. </a-form-model-item>
  70. </a-col>
  71. <a-col :span="24">
  72. <a-form-model-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="age">
  73. <a-input-number v-model="model.age" placeholder="请输入年龄" style="width: 100%" />
  74. </a-form-model-item>
  75. </a-col>
  76. <a-col :span="24">
  77. <a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gender">
  78. <j-dict-select-tag type="list" v-model="model.gender" dictCode="sex" placeholder="请选择性别" />
  79. </a-form-model-item>
  80. </a-col>
  81. <a-col :span="24">
  82. <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime">
  83. <j-date placeholder="请选择时间范围" v-model="model.startTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
  84. </a-form-model-item>
  85. </a-col>
  86. <a-col :span="24">
  87. <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="endTime">
  88. <j-date placeholder="请选择时间范围" v-model="model.endTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
  89. </a-form-model-item>
  90. </a-col>
  91. <a-col :span="24">
  92. <a-form-model-item label="支付时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payTime">
  93. <j-date placeholder="请选择支付时间" v-model="model.payTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
  94. </a-form-model-item>
  95. </a-col>
  96. <a-col :span="24">
  97. <a-form-model-item label="工作时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime">
  98. <a-input v-model="model.workTime" placeholder="请输入工作时长" ></a-input>
  99. </a-form-model-item>
  100. </a-col>
  101. <a-col :span="24">
  102. <a-form-model-item label="订单状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus">
  103. <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="请选择订单状态" />
  104. </a-form-model-item>
  105. </a-col>
  106. <a-col :span="24">
  107. <a-form-model-item label="结算方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payType">
  108. <j-dict-select-tag type="list" v-model="model.payType" dictCode="pay_type" placeholder="请选择结算方式" />
  109. </a-form-model-item>
  110. </a-col>
  111. <a-col :span="24">
  112. <a-form-model-item label="付款金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payMoney">
  113. <a-input-number v-model="model.payMoney" placeholder="请输入付款金额(元)" style="width: 100%" />
  114. </a-form-model-item>
  115. </a-col>
  116. <a-col :span="24">
  117. <a-form-model-item label="支付方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneyType">
  118. <j-dict-select-tag type="list" v-model="model.moneyType" dictCode="money_type" placeholder="请选择支付方式" />
  119. </a-form-model-item>
  120. </a-col>
  121. <a-col :span="24">
  122. <a-form-model-item label="保险费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="premium">
  123. <a-input-number v-model="model.premium" placeholder="请输入保险费(元)" style="width: 100%" />
  124. </a-form-model-item>
  125. </a-col>
  126. <a-col :span="24">
  127. <a-form-model-item label="交通费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelMoney">
  128. <a-input-number v-model="model.travelMoney" placeholder="请输入交通费用金额(元)" style="width: 100%" />
  129. </a-form-model-item>
  130. </a-col>
  131. <a-col :span="24">
  132. <a-form-model-item label="试工费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workMoney">
  133. <a-input-number v-model="model.workMoney" placeholder="请输入试工费用金额(元)" style="width: 100%" />
  134. </a-form-model-item>
  135. </a-col>
  136. <a-col :span="24">
  137. <a-form-model-item label="总金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="amount">
  138. <a-input-number v-model="model.amount" placeholder="请输入总金额(元)" style="width: 100%" />
  139. </a-form-model-item>
  140. </a-col>
  141. <a-col :span="24">
  142. <a-form-model-item label="平台手续费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rateMoney">
  143. <a-input-number v-model="model.rateMoney" placeholder="请输入平台手续费(元)" style="width: 100%" />
  144. </a-form-model-item>
  145. </a-col>
  146. <a-col :span="24">
  147. <a-form-model-item label="平台手续费率)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rate">
  148. <a-input-number v-model="model.rate" placeholder="请输入平台手续费率)" style="width: 100%" />
  149. </a-form-model-item>
  150. </a-col>
  151. </a-row>
  152. </a-form-model>
  153. </j-form-container>
  154. </a-spin>
  155. </template>
  156. <script>
  157. import { httpAction, getAction } from '@/api/manage'
  158. import { validateDuplicateValue } from '@/utils/util'
  159. export default {
  160. name: 'TbOrderForm',
  161. components: {
  162. },
  163. props: {
  164. //表单禁用
  165. disabled: {
  166. type: Boolean,
  167. default: false,
  168. required: false
  169. }
  170. },
  171. data () {
  172. return {
  173. model:{
  174. },
  175. labelCol: {
  176. xs: { span: 24 },
  177. sm: { span: 5 },
  178. },
  179. wrapperCol: {
  180. xs: { span: 24 },
  181. sm: { span: 16 },
  182. },
  183. confirmLoading: false,
  184. validatorRules: {
  185. payMoney: [
  186. { required: true, message: '请输入付款金额(元)、!'},
  187. ],
  188. premium: [
  189. { required: true, message: '请输入保险费(元)、!'},
  190. ],
  191. travelMoney: [
  192. { required: true, message: '请输入交通费用金额(元)、!'},
  193. ],
  194. workMoney: [
  195. { required: true, message: '请输入试工费用金额(元)、!'},
  196. ],
  197. amount: [
  198. { required: true, message: '请输入总金额(元)、!'},
  199. ],
  200. rateMoney: [
  201. { required: true, message: '请输入平台手续费(元)、!'},
  202. ],
  203. rate: [
  204. { required: true, message: '请输入平台手续费率)、!'},
  205. ],
  206. },
  207. url: {
  208. add: "/tbOrder/tbOrder/add",
  209. edit: "/tbOrder/tbOrder/edit",
  210. queryById: "/tbOrder/tbOrder/queryById"
  211. }
  212. }
  213. },
  214. computed: {
  215. formDisabled(){
  216. return this.disabled
  217. },
  218. },
  219. created () {
  220. //备份model原始值
  221. this.modelDefault = JSON.parse(JSON.stringify(this.model));
  222. },
  223. methods: {
  224. add () {
  225. this.edit(this.modelDefault);
  226. },
  227. edit (record) {
  228. this.model = Object.assign({}, record);
  229. this.visible = true;
  230. },
  231. submitForm () {
  232. const that = this;
  233. // 触发表单验证
  234. this.$refs.form.validate(valid => {
  235. if (valid) {
  236. that.confirmLoading = true;
  237. let httpurl = '';
  238. let method = '';
  239. if(!this.model.id){
  240. httpurl+=this.url.add;
  241. method = 'post';
  242. }else{
  243. httpurl+=this.url.edit;
  244. method = 'put';
  245. }
  246. httpAction(httpurl,this.model,method).then((res)=>{
  247. if(res.success){
  248. that.$message.success(res.message);
  249. that.$emit('ok');
  250. }else{
  251. that.$message.warning(res.message);
  252. }
  253. }).finally(() => {
  254. that.confirmLoading = false;
  255. })
  256. }
  257. })
  258. },
  259. }
  260. }
  261. </script>