warningchange
This commit is contained in:
commit
c0d96cb735
|
@ -22,11 +22,11 @@ export function notWork(id, data) {
|
|||
})
|
||||
}
|
||||
|
||||
export function getEmployee(data) {
|
||||
export function getEmployee(query) {
|
||||
return request({
|
||||
url: '/hrm/employee/',
|
||||
method: 'get',
|
||||
data
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ export const asyncRoutes = [
|
|||
component: Layout,
|
||||
redirect: '/wpm/worktask',
|
||||
name: 'wpm',
|
||||
meta: { title: '生产执行', icon: 'execute', perms: ['equipment_set'] },
|
||||
meta: { title: '生产执行', icon: 'execute', perms: ['wpm_manage'] },
|
||||
children: [
|
||||
{
|
||||
path: 'worktask',
|
||||
|
@ -231,20 +231,20 @@ export const asyncRoutes = [
|
|||
path: 'operationdo/:id',
|
||||
name: 'operationdo',
|
||||
component: () => import('@/views/wpm/operationdo'),
|
||||
meta: { title: '车间操作跳转界面', icon: 'home', perms: ['index_manage'] },
|
||||
meta: { title: '车间操作执行', icon: 'home'},
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'need',
|
||||
name: 'need',
|
||||
component: () => import('@/views/wpm/need'),
|
||||
meta: { title: '过程检验', icon: 'processTest', perms: ['wpm_need'] }
|
||||
meta: { title: '过程检验', icon: 'processTest', perms: ['wpm_test'] }
|
||||
},
|
||||
{
|
||||
path: 'productjy',
|
||||
name: 'productjy',
|
||||
component: () => import('@/views/wpm/productjy'),
|
||||
meta: { title: '成品检验', icon: 'finishedCheck', perms: ['wpm_productjy'] }
|
||||
meta: { title: '成品检验', icon: 'finishedCheck', perms: ['wpm_test'] }
|
||||
},
|
||||
{
|
||||
path: 'firstCheck',
|
||||
|
@ -746,33 +746,33 @@ export const asyncRoutes = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/testModel',
|
||||
component: Layout,
|
||||
redirect: '/testModel/faceLogin/',
|
||||
name: 'testModel',
|
||||
meta: { title: '测试模块', icon: 'home' },
|
||||
children: [
|
||||
{
|
||||
path: 'faceLogin',
|
||||
name: 'faceLogin',
|
||||
component: () => import('@/views/testModel/faceLogin'),
|
||||
meta: { title: '人脸识别登录', icon: 'home' }
|
||||
},
|
||||
{
|
||||
path: 'caram',
|
||||
name: 'caram',
|
||||
component: () => import('@/views/testModel/caram'),
|
||||
meta: { title: '相机调用', icon: 'home' }
|
||||
},
|
||||
{
|
||||
path: 'markImage',
|
||||
name: 'markImage',
|
||||
component: () => import('@/views/testModel/markImage'),
|
||||
meta: { title: '图片标记', icon: 'home' }
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// path: '/testModel',
|
||||
// component: Layout,
|
||||
// redirect: '/testModel/faceLogin/',
|
||||
// name: 'testModel',
|
||||
// meta: { title: '测试模块', icon: 'home' },
|
||||
// children: [
|
||||
// {
|
||||
// path: 'faceLogin',
|
||||
// name: 'faceLogin',
|
||||
// component: () => import('@/views/testModel/faceLogin'),
|
||||
// meta: { title: '人脸识别登录', icon: 'home' }
|
||||
// },
|
||||
// {
|
||||
// path: 'caram',
|
||||
// name: 'caram',
|
||||
// component: () => import('@/views/testModel/caram'),
|
||||
// meta: { title: '相机调用', icon: 'home' }
|
||||
// },
|
||||
// {
|
||||
// path: 'markImage',
|
||||
// name: 'markImage',
|
||||
// component: () => import('@/views/testModel/markImage'),
|
||||
// meta: { title: '图片标记', icon: 'home' }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// 404 page must be placed at the end !!!
|
||||
{ path: '*', redirect: '/404', hidden: true }
|
||||
]
|
||||
|
|
|
@ -653,9 +653,9 @@
|
|||
getUserList() {
|
||||
let that = this;
|
||||
that.listUser = false;
|
||||
getEmployee({page: 0, type: 'big_screen'}).then((response) => {
|
||||
getEmployee({page: 0,type:'big_screen',show_atwork:true}).then((response) => {
|
||||
if (response.data) {
|
||||
let list = response.data.results;
|
||||
let list = response.data;
|
||||
let data = [];
|
||||
list.forEach(item => {
|
||||
let obj = [];
|
||||
|
|
|
@ -48,6 +48,14 @@
|
|||
</span>
|
||||
<span v-else></span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="监管协议号">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.to_order_">{{scope.row.to_order_.contract_.watch_num}}</span>
|
||||
<span v-else-if="scope.row.to_order_ == null && scope.row.need_to_order == true">
|
||||
</span>
|
||||
<span v-else></span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户">
|
||||
<template slot-scope="scope">
|
||||
|
@ -113,6 +121,7 @@
|
|||
<el-descriptions-item label="原订单">{{ this.ordershow }}</el-descriptions-item>
|
||||
<el-descriptions-item label="原客户">{{ this.customershow }}</el-descriptions-item>
|
||||
<el-descriptions-item label="原合同">{{ this.contractshow }}</el-descriptions-item>
|
||||
<el-descriptions-item label="监管协议号">{{ this.watch_num }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
|
@ -195,6 +204,7 @@
|
|||
ordershow: "",
|
||||
customershow: "",
|
||||
contractshow: "",
|
||||
watch_num:"",
|
||||
materialshow: [],
|
||||
};
|
||||
},
|
||||
|
@ -247,6 +257,7 @@
|
|||
this.ordershow = _this.materialshow[0].order_.number;
|
||||
this.customershow = _this.materialshow[0].order_.customer_.name;
|
||||
this.contractshow = _this.materialshow[0].order_.contract_.name;
|
||||
this.watch_num = _this.materialshow[0].order_.contract_.watch_num;
|
||||
getOrderList({page: 0, material: _this.mtmId[0], tag: 'not_done'}).then(
|
||||
(response) => {
|
||||
if (response.data) {
|
||||
|
|
|
@ -1,184 +1,218 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-row :gutter="2">
|
||||
<el-col :span="9" >
|
||||
<el-card style="height:655px" >
|
||||
|
||||
<div>基础信息</div>
|
||||
<el-form ref="Form" :model="user" label-width="80px" label-position="right" :rules="rule1">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="user.name" placeholder="姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="账户" prop="username">
|
||||
<el-input v-model="user.username" placeholder="账户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属部门" prop="dept">
|
||||
<el-cascader ref="cascader" :options="orgData" v-model="user.dept" :show-all-levels="false"></el-cascader>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="角色" prop="roles">
|
||||
<el-select v-model="user.roles" multiple placeholder="请选择" style="width:100%">
|
||||
<el-option
|
||||
v-for="item in roles"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="头像" prop="dept">
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
:action="upUrl"
|
||||
accept="image/jpeg, image/gif, image/png, image/bmp"
|
||||
:show-file-list="false"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:headers="upHeaders"
|
||||
<el-col :span="9">
|
||||
<el-card style="height: 655px">
|
||||
<div>基础信息</div>
|
||||
<el-form
|
||||
ref="Form"
|
||||
:model="user"
|
||||
label-width="80px"
|
||||
label-position="right"
|
||||
:rules="rule1"
|
||||
>
|
||||
<img v-if="user.avatar" :src="user.avatar" class="avatar" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon" />
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitFormuser" >保存</el-button>
|
||||
<el-button @click="goBack">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
</el-card>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="user.name" placeholder="姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="账户" prop="username">
|
||||
<el-input v-model="user.username" placeholder="账户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属部门" prop="dept">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
:options="orgData"
|
||||
v-model="user.dept"
|
||||
:show-all-levels="false"
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色" prop="roles">
|
||||
<el-select
|
||||
v-model="user.roles"
|
||||
multiple
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in roles"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="头像" prop="dept">
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
:action="upUrl"
|
||||
accept="image/jpeg, image/gif, image/png, image/bmp"
|
||||
:show-file-list="false"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:headers="upHeaders"
|
||||
>
|
||||
<img v-if="user.avatar" :src="user.avatar" class="avatar" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon" />
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitFormuser">保存</el-button>
|
||||
<el-button @click="goBack">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="15" >
|
||||
<el-card style="height:655px" >
|
||||
<div>详细信息</div>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工号" prop="number">
|
||||
<el-input
|
||||
v-model="formData.number"
|
||||
placeholder="请输入编号"
|
||||
clearable
|
||||
:style="{width: '100%'}"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="学历" prop="qualification">
|
||||
<el-input
|
||||
v-model="formData.qualification"
|
||||
placeholder="请输入学历"
|
||||
clearable
|
||||
:style="{width: '100%'}"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-select
|
||||
v-model="formData.gender"
|
||||
placeholder="请选择性别"
|
||||
clearable
|
||||
:style="{width: '100%'}"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in genderOptions"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="在职状态" prop="job_state">
|
||||
<el-select
|
||||
v-model="formData.job_state"
|
||||
placeholder="请选择在职状态"
|
||||
clearable
|
||||
:style="{width: '100%'}"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in jobstateOptions"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出生年月" prop="birthday">
|
||||
<el-date-picker
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width:100%"
|
||||
<el-col :span="15">
|
||||
<el-card style="height: 655px">
|
||||
<div>详细信息</div>
|
||||
<el-form
|
||||
ref="elForm"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
size="medium"
|
||||
label-width="100px"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工号" prop="number">
|
||||
<el-input
|
||||
v-model="formData.number"
|
||||
placeholder="请输入编号"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="学历" prop="qualification">
|
||||
<el-input
|
||||
v-model="formData.qualification"
|
||||
placeholder="请输入学历"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-select
|
||||
v-model="formData.gender"
|
||||
placeholder="请选择性别"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in genderOptions"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="在职状态" prop="job_state">
|
||||
<el-select
|
||||
v-model="formData.job_state"
|
||||
placeholder="请选择在职状态"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in jobstateOptions"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出生年月" prop="birthday">
|
||||
<el-date-picker
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="身份证号" prop="id_number">
|
||||
<el-input
|
||||
v-model="formData.id_number"
|
||||
placeholder="请输入身份证号"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="身份证号" prop="id_number">
|
||||
<el-input
|
||||
v-model="formData.id_number"
|
||||
placeholder="请输入身份证号"
|
||||
clearable
|
||||
:style="{width: '100%'}"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="证件照" prop="photo">
|
||||
<el-upload
|
||||
:action="upUrl"
|
||||
accept=".png, .jpeg, .jpg"
|
||||
:headers="upHeaders"
|
||||
class="avatar-uploader"
|
||||
:show-file-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<img
|
||||
v-if="formData.photo"
|
||||
:src="formData.photo"
|
||||
class="avatar"
|
||||
/>
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="签名图片" prop="signature">
|
||||
<el-upload
|
||||
:action="upUrl"
|
||||
:headers="upHeaders"
|
||||
accept=".png, .jpeg, .jpg"
|
||||
:before-upload="beforeUpload"
|
||||
class="avatar-uploader"
|
||||
:show-file-list="false"
|
||||
:on-success="handleSuccess2"
|
||||
><img
|
||||
v-if="formData.signature"
|
||||
:src="formData.signature"
|
||||
class="avatar2" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon2"></i
|
||||
></el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否显示在岗" prop="job_state">
|
||||
<el-switch
|
||||
v-model="formData.show_atwork"
|
||||
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="证件照" prop="photo">
|
||||
<el-upload
|
||||
:action="upUrl"
|
||||
accept=".png, .jpeg, .jpg"
|
||||
:headers="upHeaders"
|
||||
class="avatar-uploader"
|
||||
:show-file-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<img v-if="formData.photo" :src="formData.photo" class="avatar" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="签名图片" prop="signature">
|
||||
<el-upload :action="upUrl" :headers="upHeaders" accept=".png, .jpeg, .jpg" :before-upload="beforeUpload" class="avatar-uploader"
|
||||
:show-file-list="false"
|
||||
:on-success="handleSuccess2"><img v-if="formData.signature" :src="formData.signature" class="avatar2" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon2"></i></el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm" >保存</el-button>
|
||||
<el-button @click="goBack">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
</el-card>
|
||||
</el-col>
|
||||
>
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">保存</el-button>
|
||||
<el-button @click="goBack">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -221,17 +255,17 @@
|
|||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
import { upUrl, upHeaders } from "@/api/file"
|
||||
import { genSignature } from "@/api/util"
|
||||
import { getUser,updateUser } from "@/api/user";
|
||||
import { genTree } from "@/utils"
|
||||
import { getOrgAll } from "@/api/org"
|
||||
import { getRoleAll } from "@/api/role"
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import { upUrl, upHeaders } from "@/api/file";
|
||||
import { genSignature } from "@/api/util";
|
||||
import { getUser, updateUser } from "@/api/user";
|
||||
import { genTree } from "@/utils";
|
||||
import { getOrgAll } from "@/api/org";
|
||||
import { getRoleAll } from "@/api/role";
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import { getEmployee, updateEmployee } from "@/api/employee";
|
||||
const defaultForm = {
|
||||
user:{},
|
||||
user: {},
|
||||
show_atwork:true,
|
||||
};
|
||||
export default {
|
||||
name: "Employeedetail",
|
||||
|
@ -242,28 +276,28 @@ export default {
|
|||
upHeaders: upHeaders(),
|
||||
upUrl: upUrl(),
|
||||
formData: Object.assign({}, defaultForm),
|
||||
user:[],
|
||||
orgData: [],
|
||||
roles: [],
|
||||
user: [],
|
||||
orgData: [],
|
||||
roles: [],
|
||||
genderOptions: [
|
||||
{ value: "男", label: "男" },
|
||||
{ value: "女", label: "女" }
|
||||
{ value: "女", label: "女" },
|
||||
],
|
||||
jobstateOptions:[
|
||||
jobstateOptions: [
|
||||
{ value: 1, label: "在职" },
|
||||
{ value: 2, label: "离职" }
|
||||
{ value: 2, label: "离职" },
|
||||
],
|
||||
deptvalue:null,
|
||||
deptvalue: null,
|
||||
rules: {
|
||||
|
||||
ID_number: [
|
||||
{
|
||||
pattern: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/,
|
||||
pattern:
|
||||
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/,
|
||||
message: "身份证格式错误",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
}
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
|
@ -271,36 +305,32 @@ export default {
|
|||
created() {
|
||||
this.formData.id = this.$route.params.id;
|
||||
this.getDetail();
|
||||
this.getOrgAll();
|
||||
this.getOrgAll();
|
||||
this.getRoleAll();
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
getDetail() {
|
||||
getEmployee(this.$route.params.id).then(res => {
|
||||
getEmployee(this.$route.params.id).then((res) => {
|
||||
this.formData = res.data;
|
||||
getUser(res.data.user).then(Response => {
|
||||
|
||||
this.user=Response.data;
|
||||
|
||||
})
|
||||
getUser(res.data.user).then((Response) => {
|
||||
this.user = Response.data;
|
||||
});
|
||||
});
|
||||
},
|
||||
getOrgAll() {
|
||||
|
||||
getOrgAll().then(response => {
|
||||
getOrgAll().then((response) => {
|
||||
this.orgData = genTree(response.data);
|
||||
|
||||
});
|
||||
},
|
||||
getRoleAll() {
|
||||
getRoleAll({page:0}).then(response => {
|
||||
this.roles =response.data;
|
||||
getRoleAll({ page: 0 }).then((response) => {
|
||||
this.roles = response.data;
|
||||
});
|
||||
},
|
||||
|
||||
handleAvatarSuccess(res, file) {
|
||||
this.user.avatar = res.data.path
|
||||
handleAvatarSuccess(res, file) {
|
||||
this.user.avatar = res.data.path;
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||
|
@ -324,21 +354,25 @@ export default {
|
|||
this.formData.photo = res.data.path;
|
||||
},
|
||||
handleSuccess2(res, file) {
|
||||
const loading = this.$loading({text:'上传成功,正在转换..'})
|
||||
genSignature({path:res.data.path}).then(res=>{
|
||||
this.formData.signature = res.data.path
|
||||
loading.close()
|
||||
}).catch(error=>{loading.close()})
|
||||
const loading = this.$loading({ text: "上传成功,正在转换.." });
|
||||
genSignature({ path: res.data.path })
|
||||
.then((res) => {
|
||||
this.formData.signature = res.data.path;
|
||||
loading.close();
|
||||
})
|
||||
.catch((error) => {
|
||||
loading.close();
|
||||
});
|
||||
// this.formData.photo = res.data.path;
|
||||
},
|
||||
|
||||
submitForm() {
|
||||
this.$refs["elForm"].validate(valid => {
|
||||
this.$refs["elForm"].validate((valid) => {
|
||||
if (!valid) return;
|
||||
// TODO 提交表单
|
||||
var data = this.formData;
|
||||
|
||||
updateEmployee(this.$route.params.id, data).then(res => {
|
||||
updateEmployee(this.$route.params.id, data).then((res) => {
|
||||
this.$message.success("成功");
|
||||
});
|
||||
});
|
||||
|
@ -349,26 +383,23 @@ export default {
|
|||
goBack() {
|
||||
this.$router.go(-1);
|
||||
},
|
||||
submitFormuser() {
|
||||
this.$refs["Form"].validate(valid => {
|
||||
submitFormuser() {
|
||||
this.$refs["Form"].validate((valid) => {
|
||||
if (!valid) return;
|
||||
|
||||
this.deptvalue = this.$refs["cascader"].getCheckedNodes();
|
||||
if (this.deptvalue != "") {
|
||||
this.user.dept = this.deptvalue[0].value;
|
||||
}
|
||||
|
||||
this.deptvalue= this.$refs['cascader'].getCheckedNodes();
|
||||
if( this.deptvalue!="")
|
||||
{
|
||||
this.user.dept=this.deptvalue[0].value;
|
||||
}
|
||||
|
||||
updateUser(this.user.id, this.user).then(res => {
|
||||
|
||||
this.$message({
|
||||
message: "编辑成功",
|
||||
type: "success",
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
updateUser(this.user.id, this.user).then((res) => {
|
||||
this.$message({
|
||||
message: "编辑成功",
|
||||
type: "success",
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -50,6 +50,8 @@
|
|||
<el-table-column label="合同名称" prop="name" width="160" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="合同编号" prop="number" width="160" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="监管协议号" prop="watch_num" width="160" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="合同金额(元)" prop="amount" width="120">
|
||||
</el-table-column>
|
||||
|
@ -116,6 +118,9 @@
|
|||
>
|
||||
<el-form-item label="合同名称" prop="name">
|
||||
<el-input v-model="contract.name" placeholder="合同名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="监管协议号" prop="watch_num">
|
||||
<el-input v-model="contract.watch_num" placeholder="合同名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="合同编号" prop="number">
|
||||
<el-input v-model="contract.number" placeholder="合同编号"/>
|
||||
|
|
|
@ -87,18 +87,18 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="指派订单">
|
||||
<template slot-scope="scope" v-if="scope.row.to_order_">
|
||||
{{scope.row.to_order_.number }}
|
||||
<template slot-scope="scope" v-if="scope.row.order_">
|
||||
{{scope.row.order_.number }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户">
|
||||
<template slot-scope="scope" v-if="scope.row.to_order_">
|
||||
{{scope.row.to_order_.customer_.name }}
|
||||
<template slot-scope="scope" v-if="scope.row.customer_">
|
||||
{{scope.row.customer_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="合同">
|
||||
<template slot-scope="scope" v-if="scope.row.to_order_">
|
||||
{{scope.row.to_order_.contract_.name }}
|
||||
<template slot-scope="scope" v-if="scope.row.contract_">
|
||||
{{scope.row.contract_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" width="220px">
|
||||
|
|
|
@ -4,7 +4,7 @@ from rest_framework.response import Response
|
|||
from celery import shared_task
|
||||
import os
|
||||
import subprocess
|
||||
from server.settings_pro import DATABASES, BACKUP_PATH, SH_PATH
|
||||
from server.settings_pro import DATABASES, BACKUP_PATH, SH_PATH, SD_PWD
|
||||
|
||||
@shared_task
|
||||
def backup_database():
|
||||
|
@ -13,7 +13,8 @@ def backup_database():
|
|||
"""
|
||||
import datetime
|
||||
name = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
|
||||
command = 'pg_dump "user={} password={} dbname={}" > {}/hberp_{}.sql'.format(
|
||||
command = 'echo "{}" | sudo -S pg_dump "user={} password={} dbname={}" > {}/hberp_{}.sql'.format(
|
||||
SD_PWD,
|
||||
DATABASES['default']['USER'],
|
||||
DATABASES['default']['PASSWORD'],
|
||||
DATABASES['default']['NAME'],
|
||||
|
@ -30,7 +31,7 @@ def reload_server():
|
|||
|
||||
@shared_task
|
||||
def reload_server_only():
|
||||
command = 'sudo service supervisor reload'
|
||||
command = 'echo "{}" | sudo -S service supervisor reload'.format(SD_PWD)
|
||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
return completed
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class EmployeeFilterSet(DynamicFieldsFilterMixin, filters.FilterSet):
|
|||
|
||||
class Meta:
|
||||
model = Employee
|
||||
fields = ['job_state']
|
||||
fields = ['job_state', 'show_atwork']
|
||||
|
||||
|
||||
class NotWorkRemarkFilterSet(filters.FilterSet):
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.9 on 2022-03-17 03:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hrm', '0008_auto_20220222_1112'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='employee',
|
||||
name='show_atwork',
|
||||
field=models.BooleanField(default=True, verbose_name='是否展示在岗状态'),
|
||||
),
|
||||
]
|
|
@ -31,8 +31,10 @@ class Employee(CommonAModel):
|
|||
job_state = models.IntegerField('在职状态', choices=jobstate_choices, default=1)
|
||||
face_data = models.JSONField('人脸识别数据', null=True, blank=True)
|
||||
is_atwork = models.BooleanField('当前在岗', default=False)
|
||||
show_atwork = models.BooleanField('是否展示在岗状态', default=True)
|
||||
last_check_time = models.DateTimeField('打卡时间', null=True, blank=True)
|
||||
not_work_remark = models.CharField('当前未打卡说明', null=True, blank=True, max_length=200)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '员工补充信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.9 on 2022-03-17 03:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('sam', '0016_sale_iproducts'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='contract',
|
||||
name='watch_num',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='监管协议号'),
|
||||
),
|
||||
]
|
|
@ -39,7 +39,7 @@ class Contract(CommonAModel):
|
|||
customer = models.ForeignKey(Customer, verbose_name='关联客户', on_delete=models.CASCADE, related_name='contact_customer')
|
||||
sign_date = models.DateField('签订日期')
|
||||
description = models.CharField('描述', max_length=200, blank=True, null=True)
|
||||
|
||||
watch_num = models.CharField('监管协议号', max_length=100, null=True, blank=True)
|
||||
class Meta:
|
||||
verbose_name = '合同信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -32,12 +32,12 @@ class ContractSerializer(serializers.ModelSerializer):
|
|||
class ContractSimpleSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Contract
|
||||
fields = ['id', 'name', 'number']
|
||||
fields = ['id', 'name', 'number', 'watch_num']
|
||||
|
||||
class ContractCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Contract
|
||||
fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description', 'invoice']
|
||||
fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description', 'invoice', 'watch_num']
|
||||
|
||||
|
||||
class OrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
|
|
|
@ -147,7 +147,8 @@ class AtWorkCountView(CreateAPIView):
|
|||
)
|
||||
ret = ClockRecord.objects.filter(
|
||||
update_time__year = vdata['year'],
|
||||
update_time__month = vdata['month']
|
||||
update_time__month = vdata['month'],
|
||||
create_by__show_atwork = True
|
||||
).values(
|
||||
user_id = F('create_by'),
|
||||
number = F('create_by__employee_user__number'),
|
||||
|
|
Loading…
Reference in New Issue