|
@@ -0,0 +1,224 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <van-nav-bar
|
|
|
+ :title="$route.params && $route.params.id ? '编辑工人' : '添加工人'"
|
|
|
+ left-text="返回"
|
|
|
+ left-arrow
|
|
|
+ class="shadow mb-4"
|
|
|
+ @click-left="$router.back(-1)"
|
|
|
+ />
|
|
|
+ <van-form class="w-11/12 mx-auto" @submit="onSubmit">
|
|
|
+ <div class="shadow">
|
|
|
+ <van-field name="工种" label="工种">
|
|
|
+ <template #input>
|
|
|
+ <van-checkbox-group
|
|
|
+ :value="form.type_ids.toString().split(',')"
|
|
|
+ @input="$set(form, 'type_ids', $event.join(','))"
|
|
|
+ direction="horizontal"
|
|
|
+ >
|
|
|
+ <van-checkbox
|
|
|
+ v-for="(type, index) in types"
|
|
|
+ :key="index"
|
|
|
+ :name="type.id.toString()"
|
|
|
+ shape="square"
|
|
|
+ >{{ type.name }}</van-checkbox
|
|
|
+ >
|
|
|
+ </van-checkbox-group>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <!--Select
|
|
|
+ v-model="form.type_ids"
|
|
|
+ name="工种"
|
|
|
+ label="工种"
|
|
|
+ placeholder="工种"
|
|
|
+ :columns="types"
|
|
|
+ :rules="[{ required: true, message: '请选择工种' }]"
|
|
|
+ /-->
|
|
|
+ <van-field
|
|
|
+ v-model="form.name"
|
|
|
+ name="工人姓名"
|
|
|
+ label="工人姓名"
|
|
|
+ placeholder="工人姓名"
|
|
|
+ :rules="[{ required: true, message: '请填写工人姓名' }]"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.phone"
|
|
|
+ clearable
|
|
|
+ label="手机号码"
|
|
|
+ placeholder="请输入手机号码"
|
|
|
+ type="tel"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请输入手机号码' },
|
|
|
+ {
|
|
|
+ pattern:
|
|
|
+ /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|162|166|198|199|191|(147))\d{8}$/,
|
|
|
+ message: '手机号码格式错误!',
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ <Select
|
|
|
+ v-model="form.sex"
|
|
|
+ name="性别"
|
|
|
+ label="性别"
|
|
|
+ placeholder="性别"
|
|
|
+ :columns="[
|
|
|
+ { id: 0, name: '未知' },
|
|
|
+ { id: 1, name: '男' },
|
|
|
+ { id: 2, name: '女' },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ <van-field v-model="form.age" type="digit" label="年龄" />
|
|
|
+ <van-field
|
|
|
+ v-model="form.idcode"
|
|
|
+ name="身份证号"
|
|
|
+ label="身份证号"
|
|
|
+ placeholder="身份证号"
|
|
|
+ />
|
|
|
+ <van-field name="是否买保险" label="是否买保险">
|
|
|
+ <template #input>
|
|
|
+ <van-radio-group v-model="form.insure" direction="horizontal">
|
|
|
+ <van-radio :name="1">是</van-radio>
|
|
|
+ <van-radio :name="0">否</van-radio>
|
|
|
+ </van-radio-group>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <DatetimeSelect
|
|
|
+ v-model="form.insure_start"
|
|
|
+ name="保险开始日期"
|
|
|
+ label="保险开始日期"
|
|
|
+ placeholder="保险开始日期"
|
|
|
+ />
|
|
|
+ <DatetimeSelect
|
|
|
+ v-model="form.insure_end"
|
|
|
+ name="保险结束日期"
|
|
|
+ label="保险结束日期"
|
|
|
+ placeholder="保险结束日期"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.bank_name"
|
|
|
+ name="开户行"
|
|
|
+ label="开户行"
|
|
|
+ placeholder="开户行"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.bank_card_no"
|
|
|
+ name="银行卡号"
|
|
|
+ label="银行卡号"
|
|
|
+ placeholder="银行卡号"
|
|
|
+ />
|
|
|
+ <AddressCode
|
|
|
+ v-model="form.areacode"
|
|
|
+ :level="3"
|
|
|
+ label="所在区域"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="mt-8">
|
|
|
+ <van-button
|
|
|
+ :loading="submitLoading"
|
|
|
+ block
|
|
|
+ type="info"
|
|
|
+ loading-text="加载中..."
|
|
|
+ native-type="submit"
|
|
|
+ >提交</van-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getWorkTypes, getWorker, addWorker, editWorker } from "@/api/admin.js";
|
|
|
+
|
|
|
+import Select from "@/components/Select";
|
|
|
+import DatetimeSelect from "@/components/DatetimeSelect";
|
|
|
+import AddressCode from "@/components/AddressCode";
|
|
|
+import { RadioGroup, Radio } from "vant";
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ Select,
|
|
|
+ DatetimeSelect,
|
|
|
+ [RadioGroup.name]: RadioGroup,
|
|
|
+ [Radio.name]: Radio,
|
|
|
+ AddressCode,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ submitLoading: false,
|
|
|
+ types: [],
|
|
|
+ form: {
|
|
|
+ type_ids: "",
|
|
|
+ sex: 0,
|
|
|
+ insure: 0,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.loadWorkTypes();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ loadWorkTypes() {
|
|
|
+ this.$store.commit("loading/showLoading");
|
|
|
+ getWorkTypes()
|
|
|
+ .then((response) => {
|
|
|
+ this.types = response.data.list;
|
|
|
+ if (this.$route.params && this.$route.params.id) {
|
|
|
+ this.loadWorker();
|
|
|
+ } else {
|
|
|
+ this.$store.commit("loading/hideLoading");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$store.commit("loading/hideLoading");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ loadWorker() {
|
|
|
+ this.$store.commit("loading/showLoading");
|
|
|
+ getWorker(this.$route.params && this.$route.params.id)
|
|
|
+ .then((response) => {
|
|
|
+ this.form = response.data;
|
|
|
+ this.$store.commit("loading/hideLoading");
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$store.commit("loading/hideLoading");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onSubmit() {
|
|
|
+ console.log(this.form);
|
|
|
+ if (this.$route.params && this.$route.params.id) {
|
|
|
+ editWorker(this.$route.params.id, this.form)
|
|
|
+ .then((response) => {
|
|
|
+ this.$toast.success({
|
|
|
+ message: "提交成功",
|
|
|
+ duration: 500,
|
|
|
+ onClose: () => {
|
|
|
+ this.$router.go(-1);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ done(false);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ addWorker(this.form)
|
|
|
+ .then((response) => {
|
|
|
+ this.$toast.success({
|
|
|
+ message: "提交成功",
|
|
|
+ duration: 500,
|
|
|
+ onClose: () => {
|
|
|
+ this.$router.go(-1);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ done(false);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+</style>
|