Compare commits

...

2 Commits

8 changed files with 386 additions and 87 deletions

View File

@ -326,7 +326,19 @@ export default {
exportExcel(type=0) {
if (type === 0) {
try {
domToExcel(this.$refs.scTable.$el, "表格数据");
const tableEl = this.$refs.scTable.$el;
const headerCells = Array.from(tableEl.querySelectorAll('thead tr th'));
const opIndex = headerCells.findIndex(th => th.textContent.trim() === '操作');
if (opIndex === -1) {
domToExcel(tableEl, this.hExportName || "表格数据");
} else {
const clone = tableEl.cloneNode(true);
clone.querySelectorAll('tr').forEach(row => {
const cells = row.querySelectorAll('th, td');
if (cells[opIndex]) cells[opIndex].remove();
});
domToExcel(clone, this.hExportName || "表格数据");
}
} catch (error) {
console.error('导出失败:', error);
this.$message.error("导出失败");

View File

@ -7,15 +7,16 @@
@closed="closeDrawer"
>
<el-container v-loading="loading">
<!--<sc-title title="详细信息"></sc-title>-->
<el-main style="padding: 0 20px 20px 20px">
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
:disabled="mode==='show'"
label-width="120px"
label-width="140px"
>
<!-- 基本信息 -->
<el-divider content-position="left">基本信息</el-divider>
<el-row>
<el-col :md="24" :sm="24">
<el-form-item label="人员类型" prop="type">
@ -28,8 +29,11 @@
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" clearable></el-input>
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="form.gender">
<el-radio label="男" size="large"></el-radio>
<el-radio label="女" size="large"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -37,12 +41,115 @@
<el-input v-model="form.id_number" placeholder="请输入身份证号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="人员编号" prop="number">
<el-input v-model="form.number" placeholder="请输入人员编号" clearable></el-input>
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
v-model="form.birthday"
type="date"
placeholder="出生日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="民族" prop="nation">
<el-input v-model="form.nation" placeholder="请输入民族" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="政治面貌" prop="partisan">
<el-select v-model="form.partisan" placeholder="请选择政治面貌" style="width: 100%" clearable>
<el-option label="中共党员" value="中共党员"></el-option>
<el-option label="中共预备党员" value="中共预备党员"></el-option>
<el-option label="共青团员" value="共青团员"></el-option>
<el-option label="群众" value="群众"></el-option>
<el-option label="民主党派" value="民主党派"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="入党时间" prop="join_partisan_date">
<el-date-picker
v-model="form.join_partisan_date"
type="date"
placeholder="入党时间"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="婚姻状况" prop="marriage">
<el-select v-model="form.marriage" placeholder="请选择婚姻状况" style="width: 100%" clearable>
<el-option label="未婚" value="未婚"></el-option>
<el-option label="已婚" value="已婚"></el-option>
<el-option label="离异" value="离异"></el-option>
<el-option label="丧偶" value="丧偶"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="户口性质" prop="hukou_type">
<el-select v-model="form.hukou_type" placeholder="请选择户口性质" style="width: 100%" clearable>
<el-option label="城镇户口" value="城镇户口"></el-option>
<el-option label="农村户口" value="农村户口"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="籍贯" prop="birthplace">
<el-input v-model="form.birthplace" placeholder="请输入籍贯" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="本人联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="个人邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="24" :sm="24">
<el-form-item label="户籍地址" prop="hukou_address">
<el-input v-model="form.hukou_address" placeholder="请输入户籍地址" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="24" :sm="24">
<el-form-item label="现住地址" prop="address">
<el-input v-model="form.address" placeholder="请输入现住地址" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="紧急联系人姓名" prop="emergency_contact">
<el-input v-model="form.emergency_contact" placeholder="请输入紧急联系人姓名" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="紧急联系人电话" prop="emergency_phone">
<el-input v-model="form.emergency_phone" placeholder="请输入紧急联系人电话" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="是否为退役军人" prop="is_veteran">
<el-radio-group v-model="form.is_veteran">
<el-radio :label="true" size="large"></el-radio>
<el-radio :label="false" size="large"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="24" :sm="24">
<el-form-item label="所获荣誉" prop="honor">
<el-input v-model="form.honor" type="textarea" :rows="2" placeholder="请输入所获荣誉" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 工作信息 -->
<el-divider content-position="left">工作信息</el-divider>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="所属部门">
<el-cascader
@ -50,11 +157,31 @@
:options="group"
:props="groupsProps"
clearable
style="width: 100%;"
disabled>
style="width: 100%;">
</el-cascader>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="车间" prop="workshop">
<el-input v-model="form.workshop" placeholder="请输入车间" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="职务" prop="position">
<el-input v-model="form.position" placeholder="请输入职务" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="职务聘任日期" prop="office_date">
<el-date-picker
v-model="form.office_date"
type="date"
placeholder="职务聘任日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type=='employee'||form.type=='remployee'">
<el-form-item label="在职状态">
<el-select v-model="form.job_state" style="width: 100%">
@ -68,71 +195,180 @@
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="系统账号">
<span v-if="form.user">{{form.user_.username}}</span>
<!-- <span></span>
<el-input v-model="form.user" placeholder="请输入系统账号" clearable></el-input> -->
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="邮箱">
<el-input v-model="form.email" placeholder="请输入邮箱" clearable></el-input>
</el-form-item>
</el-col>
<!-- <el-col :md="12" :sm="24">
<el-form-item label="学历">
<el-input v-model="form.qualification" placeholder="学历" clearable></el-input>
</el-form-item>
</el-col> -->
<el-col :md="12" :sm="24">
<el-form-item label="生日">
<el-form-item label="入职日期" prop="start_date">
<el-date-picker
v-model="form.birthday"
v-model="form.start_date"
type="date"
placeholder="生日"
placeholder="入职日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<!-- <el-col :md="12" :sm="24">
<el-form-item label="在岗状态展示">
<el-switch v-model="form.show_atwork"/>
</el-form-item>
</el-col> -->
<el-col :md="12" :sm="24">
<el-form-item label="性别">
<el-radio-group v-model="form.gender">
<el-radio label="男" size="large"></el-radio>
<el-radio label="女" size="large"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="人员照片">
<sc-upload v-model="form.photo" :modelValue="form.photo" title="人员照片"></sc-upload>
<el-form-item label="合同到期日" prop="contract_end_date">
<el-date-picker
v-model="form.contract_end_date"
type="date"
placeholder="合同到期日"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="签名">
<el-image :src="form.signature" style="width: 148px;min-height: 80px;"></el-image>
<el-form-item label="转正日期" prop="regular_date">
<el-date-picker
v-model="form.regular_date"
type="date"
placeholder="转正日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="系统账号">
<span v-if="form.user">{{form.user_.username}}</span>
</el-form-item>
</el-col>
</el-row>
</el-row>
<!-- 银行 & 社保 -->
<el-divider content-position="left">银行 & 社保</el-divider>
<el-row>
<el-form-item label="门禁时间范围">
<span v-if="form.third_info">
<span v-if="form.third_info.dh_face_card_start">{{form.third_info.dh_face_card_start}} {{form.third_info.dh_face_card_end}}</span>
</span>
</el-form-item>
<el-col :md="12" :sm="24">
<el-form-item label="银行卡号码" prop="bank_card">
<el-input v-model="form.bank_card" placeholder="请输入银行卡号码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="首次缴纳社保日期" prop="first_social_security_date">
<el-date-picker
v-model="form.first_social_security_date"
type="date"
placeholder="首次缴纳社保日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 学历信息 -->
<el-divider content-position="left">学历信息</el-divider>
<el-row>
<el-form-item label="最近定位信息">
<span v-if="form.location">{{form.location.area_fix_name}}-
<span v-if="form.location.xx_detail">经纬度({{form.location.xx_detail.longitude}}, {{form.location.xx_detail.latitude}})</span>
</span>
</el-form-item>
<el-col :md="12" :sm="24">
<el-form-item label="全日制最高学历" prop="full_edu">
<el-select v-model="form.full_edu" placeholder="请选择学历" style="width: 100%" clearable>
<el-option label="博士" value="博士"></el-option>
<el-option label="硕士" value="硕士"></el-option>
<el-option label="本科" value="本科"></el-option>
<el-option label="专科" value="专科"></el-option>
<el-option label="高中" value="高中"></el-option>
<el-option label="初中" value="初中"></el-option>
<el-option label="小学" value="小学"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="全日制学校名称" prop="full_edu_school">
<el-input v-model="form.full_edu_school" placeholder="请输入学校名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="全日制所学专业" prop="full_edu_major">
<el-input v-model="form.full_edu_major" placeholder="请输入所学专业" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="全日制入学-毕业时间" prop="full_edu_time">
<el-input v-model="form.full_edu_time" placeholder="例2010.09-2014.06" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="非全日制最高学历" prop="part_edu">
<el-select v-model="form.part_edu" placeholder="请选择学历" style="width: 100%" clearable>
<el-option label="博士" value="博士"></el-option>
<el-option label="硕士" value="硕士"></el-option>
<el-option label="本科" value="本科"></el-option>
<el-option label="专科" value="专科"></el-option>
<el-option label="高中" value="高中"></el-option>
<el-option label="初中" value="初中"></el-option>
<el-option label="小学" value="小学"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="非全日制学校名称" prop="part_edu_school">
<el-input v-model="form.part_edu_school" placeholder="请输入学校名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="非全日制所学专业" prop="part_edu_major">
<el-input v-model="form.part_edu_major" placeholder="请输入所学专业" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="非全日制入学-毕业时间" prop="part_edu_time">
<el-input v-model="form.part_edu_time" placeholder="例2015.09-2018.06" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 职称 & 技能 -->
<el-divider content-position="left">职称 & 技能</el-divider>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="枣庄市职称" prop="zhuanzhi">
<el-input v-model="form.zhuanzhi" placeholder="请输入枣庄市职称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="获得枣庄市职称日期" prop="zhuanzhi_date">
<el-date-picker
v-model="form.zhuanzhi_date"
type="date"
placeholder="获得枣庄市职称日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="总院/集团职称" prop="zyjt_zhuanzhi">
<el-input v-model="form.zyjt_zhuanzhi" placeholder="请输入总院/集团职称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="获得职称日期" prop="zyjt_zhuanzhi_date">
<el-date-picker
v-model="form.zyjt_zhuanzhi_date"
type="date"
placeholder="获得职称日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="职业技能等级" prop="skill_rank">
<el-input v-model="form.skill_rank" placeholder="请输入职业技能等级" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="获得技能等级证书日期" prop="skill_rank_date">
<el-date-picker
v-model="form.skill_rank_date"
type="date"
placeholder="获得技能等级证书日期"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-main>
<el-footer v-if="mode!=='show'">
@ -168,6 +404,41 @@
show_atwork: true,
belong_dept: '',
user: '',
//
workshop: '',
position: '',
office_date: null,
bank_card: '',
start_date: null,
contract_end_date: null,
regular_date: null,
partisan: '',
join_partisan_date: null,
nation: '',
marriage: '',
hukou_type: '',
birthplace: '',
hukou_address: '',
address: '',
zhuanzhi: '',
zhuanzhi_date: null,
zyjt_zhuanzhi: '',
zyjt_zhuanzhi_date: null,
skill_rank: '',
skill_rank_date: null,
full_edu: '',
full_edu_school: '',
full_edu_major: '',
full_edu_time: '',
part_edu: '',
part_edu_school: '',
part_edu_major: '',
part_edu_time: '',
emergency_contact: '',
emergency_phone: '',
honor: '',
first_social_security_date: null,
is_veteran: false,
};
export default {
emits: ["success", "closed"],
@ -187,7 +458,7 @@
],
visible: false,
isSaveing: false,
form: defaultForm,
form: {...defaultForm},
epTypes: {
'employee': "正式员工",
"remployee": "相关方",
@ -210,18 +481,9 @@
id_number: [
{required: true, message: '请输入身份证号', trigger: 'blur'},
{pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '你的身份证格式不正确'},
/*{
validator: (rule, value, callback) => {
if (this.form.id_number.length !== 18) {
callback(new Error('请输入正确的身份证号!'));
}
callback();
}
}*/
],
},
groupsProps: {
// value: "id",
multiple: false,
emitPath: false,
checkStrictly: true,
@ -238,9 +500,7 @@
};
},
mounted() {
// this.getPosts();
this.getGroup();
},
methods: {
getPosts(){
@ -255,7 +515,7 @@
//
async getGroup() {
let res = await this.$API.system.dept.list.req({page: 0});
this.group =genTree(res);
this.group = genTree(res);
},
//
open(mode) {
@ -271,10 +531,9 @@
submit() {
this.$refs.dialogForm.validate((valid) => {
if (valid) {
this.form.id_number=this.form.id_number.toUpperCase();
let ide = IdentityCodeValid( this.form.id_number )// true or false
if(ide){
debugger;
this.form.id_number = this.form.id_number.toUpperCase();
let ide = IdentityCodeValid(this.form.id_number);
if (ide) {
this.isSaveing = true;
if (this.mode === 'add') {
this.$API.hrm.employee.create.req(this.form)
@ -301,25 +560,19 @@
return err
})
}
}else{
} else {
this.$message.warning("请输入正确的身份证号");
}
}
});
},
//
setData(data) {
//debugger;
// console.log(defaultForm);
// this.form = defaultForm;
this.loading = true;
this.$API.hrm.employee.item.req(data.id).then(res=>{
this.$API.hrm.employee.item.req(data.id).then(res => {
this.loading = false;
this.form = res
}).catch(e=>{this.loading = false;})
// Object.assign(this.form, data);
}).catch(e => { this.loading = false; })
},
//
setFilters(filters) {

View File

@ -9,6 +9,12 @@
v-auth="'pu_order.create'"
>新增</el-button
>
<el-button
type="success"
icon="el-icon-download"
@click="$refs.table.exportExcel()"
>导出</el-button
>
</div>
<div class="right-panel">
<el-input
@ -29,6 +35,7 @@
ref="table"
:apiObj="apiObj"
row-key="id"
hExportName="采购订单"
stripe
:params="query"
>

View File

@ -9,6 +9,12 @@
v-auth="'pu_plan.create'"
>新增</el-button
>
<el-button
type="success"
icon="el-icon-download"
@click="$refs.table.exportExcel()"
>导出</el-button
>
</div>
<div class="right-panel">
<el-input
@ -29,6 +35,7 @@
ref="table"
:apiObj="apiObj"
row-key="id"
hExportName="采购计划"
stripe
:params="query"
>

View File

@ -3,6 +3,7 @@
<el-header>
<div class="left-panel">
<el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="success" icon="el-icon-download" @click="table.exportExcel()">导出</el-button>
</div>
</el-header>
@ -11,6 +12,7 @@
ref="table"
:apiObj="API.pum.quotation.list"
row-key="id"
hExportName="报价单"
stripe
:query="query"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
@ -50,6 +52,7 @@ const query = ref({});
const drawerVisible = ref(false);
const mode = ref('add');
const t_id = ref(null);
const table = ref(null);
const handleAdd = () => {
mode.value = 'add';
drawerVisible.value = true;

View File

@ -9,6 +9,12 @@
v-auth="'supplier.create'"
>新增</el-button
>
<el-button
type="success"
icon="el-icon-download"
@click="$refs.table.exportExcel()"
>导出</el-button
>
</div>
<div class="right-panel">
<el-input
@ -29,6 +35,7 @@
ref="table"
:apiObj="apiObj"
row-key="id"
hExportName="供应商"
stripe
:params="query"
>

View File

@ -7,6 +7,11 @@
icon="el-icon-plus"
@click="handleAdd"
></el-button>
<el-button
type="success"
icon="el-icon-download"
@click="$refs.table.exportExcel()"
>导出</el-button>
</div>
<div class="right-panel">
<el-select
@ -32,7 +37,7 @@
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id">
<scTable ref="table" :apiObj="apiObj" row-key="id" hExportName="论文台账">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="论文编号"

View File

@ -7,6 +7,11 @@
icon="el-icon-plus"
@click="handleAdd"
></el-button>
<el-button
type="success"
icon="el-icon-download"
@click="$refs.table.exportExcel()"
>导出</el-button>
</div>
<div class="right-panel">
<el-select
@ -32,7 +37,7 @@
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id">
<scTable ref="table" :apiObj="apiObj" row-key="id" hExportName="专利台账">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="卷号"