用工平台小程序后端代码
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.
 
 
 
 
 
 

265 lines
12 KiB

<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="老板名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName">
<a-input v-model="model.userName" placeholder="请输入老板名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工人名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workName">
<a-input v-model="model.workName" placeholder="请输入工人名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工作标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入工作标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="公司名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyName">
<a-input v-model="model.companyName" placeholder="请输入公司名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工人出发地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workerAddress">
<a-input v-model="model.workerAddress" placeholder="请输入工人出发地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="出行方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelType">
<j-dict-select-tag type="list" v-model="model.travelType" dictCode="travel_type" placeholder="请选择出行方式" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="上班地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workAddress">
<a-input v-model="model.workAddress" placeholder="请输入上班地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="行业/工种" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="industryName">
<a-input v-model="model.industryName" placeholder="请输入行业/工种" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工人个人简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detail">
<j-editor v-model="model.detail" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工作内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workDetail">
<j-editor v-model="model.workDetail" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片上传" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workPic">
<j-image-upload isMultiple v-model="model.workPic" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工人联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
<a-input v-model="model.phone" placeholder="请输入工人联系方式" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="招聘方联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bossPhone">
<a-input v-model="model.bossPhone" placeholder="请输入招聘方联系方式" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="age">
<a-input-number v-model="model.age" placeholder="请输入年龄" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gender">
<j-dict-select-tag type="list" v-model="model.gender" dictCode="sex" placeholder="请选择性别" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime">
<j-date placeholder="请选择时间范围" v-model="model.startTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="endTime">
<j-date placeholder="请选择时间范围" v-model="model.endTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="支付时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payTime">
<j-date placeholder="请选择支付时间" v-model="model.payTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工作时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime">
<a-input v-model="model.workTime" placeholder="请输入工作时长" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="订单状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus">
<j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="请选择订单状态" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="结算方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payType">
<j-dict-select-tag type="list" v-model="model.payType" dictCode="pay_type" placeholder="请选择结算方式" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="付款金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payMoney">
<a-input-number v-model="model.payMoney" placeholder="请输入付款金额(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="支付方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneyType">
<j-dict-select-tag type="list" v-model="model.moneyType" dictCode="money_type" placeholder="请选择支付方式" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="保险费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="premium">
<a-input-number v-model="model.premium" placeholder="请输入保险费(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="交通费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelMoney">
<a-input-number v-model="model.travelMoney" placeholder="请输入交通费用金额(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="试工费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workMoney">
<a-input-number v-model="model.workMoney" placeholder="请输入试工费用金额(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="总金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="amount">
<a-input-number v-model="model.amount" placeholder="请输入总金额(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="平台手续费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rateMoney">
<a-input-number v-model="model.rateMoney" placeholder="请输入平台手续费(元)" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="平台手续费率)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rate">
<a-input-number v-model="model.rate" placeholder="请输入平台手续费率)" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TbOrderForm',
components: {
},
props: {
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
payMoney: [
{ required: true, message: '请输入付款金额(元)、!'},
],
premium: [
{ required: true, message: '请输入保险费(元)、!'},
],
travelMoney: [
{ required: true, message: '请输入交通费用金额(元)、!'},
],
workMoney: [
{ required: true, message: '请输入试工费用金额(元)、!'},
],
amount: [
{ required: true, message: '请输入总金额(元)、!'},
],
rateMoney: [
{ required: true, message: '请输入平台手续费(元)、!'},
],
rate: [
{ required: true, message: '请输入平台手续费率)、!'},
],
},
url: {
add: "/tbOrder/tbOrder/add",
edit: "/tbOrder/tbOrder/edit",
queryById: "/tbOrder/tbOrder/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>