This commit is contained in:
shijing 2026-01-26 15:01:13 +08:00
commit c03e46b3a1
9 changed files with 1613 additions and 44 deletions

View File

@ -214,16 +214,16 @@
<div class="elecItem_wrap">
<span>氧化钙综合电耗</span>
<p class="elec_number">
{{ (Number(hotData.celec_consume_unit)+Number(dicData.elec_month)).toFixed(2) }}
{{ (Number(hotData.celec_consume_unit)+Number(dicData.b_sl_elec)).toFixed(2) }}
<span class="elec_unit">kW·h</span>
</p>
</div>
</div>
<div class="elecItem">
<div class="elecItem_wrap">
<span>氧化钙综合煤耗</span>
<span>氧化钙煤耗</span>
<p class="elec_number">
{{ (Number(hotData.coal_consume_unit)*1000+Number(dicData.elec_year)*1000).toFixed(2) }}
{{ (Number(hotData.coal_consume_unit)*1000+Number(dicData.b_sl_coal)).toFixed(2) }}
<span class="elec_unit">kgce/t</span>
</p>
</div>
@ -232,7 +232,7 @@
<div class="elecItem_wrap">
<span>氧化钙综合能耗</span>
<p class="elec_number">
{{ (Number(hotData.cen_consume_unit)).toFixed(2)}}
{{ (Number(hotData.cen_consume_unit)+Number(dicData.b_sl_enegy)).toFixed(2)}}
<span class="elec_unit">kgce/t</span>
</p>
</div>
@ -425,7 +425,7 @@ export default {
elecData: [
// { name: "", value: 0 },
// { name: "", value: 0 },
{ name: "高温风机", value: 0 },
{ name: "废气系统", value: 0 },
{ name: "磨球主电机", value: 0 },
{ name: "窑尾高温风机", value: 0 },
// { name: "", value: 0 },
@ -436,8 +436,9 @@ export default {
cen_consume_unit: 0, //
},
dicData:{
elec_month:0,
elec_year:0,
b_sl_elec:0,
b_sl_coal:0,
b_sl_enegy:0,
},
tableData: [],
tezhongData: [],
@ -975,14 +976,15 @@ export default {
});
// API
let query2 = generateQueryMgroup("3854338094887559168");
return this.$API.enm.enstat.req(query2);
let query2 = generateQuery("3853763444235055104");
return this.$API.enm.mpointstat.list.req(query2);
}).then((response) => {
let maxId;
console.log('----------res',response);
response.forEach((item) => {
let ind = item.day_s - 1;
seriesData3[ind] = item.elec_consume || 0;
let ind = item.day - 1;
seriesData3[ind] = item.val || 0;
maxId = ind;
});
// API
@ -1003,7 +1005,7 @@ export default {
},
},
{
name: "煤粉工序(kWh)",
name: "废气系统(kWh)",
textStyle: {
color: "#fff",
},
@ -1024,7 +1026,7 @@ export default {
},
},
{
name: '煤粉工序(kWh)',
name: '废气系统(kWh)',
type: 'line',
data: seriesData3,
lineStyle: {
@ -1183,7 +1185,7 @@ export default {
};
}
let query1 = generateQuery("3853763443194867712");
let query1 = generateQuery("3853763444235055104");
let query2 = generateQuery("3853763443379417088");
let query3 = generateQuery("3853763443597520896");

File diff suppressed because it is too large Load Diff

View File

@ -447,7 +447,7 @@ export default {
["产量", "台时产量t/h", 0, 0, 0, 0, 0, 0, 0, 0],
["运转时间", "运转时间h", 0, 0, 0, 0, 0, 0, 0, 0],
["运转时间", "运转率(%", 0, 0, 0, 0, 0, 0, 0, 0],
["能耗", "单位产品煤耗kg/t", 0, 0, 0, 0, 0, 0, 0, 0],
["能耗", "单位产品煤耗kg/t", 0, 0, 0, 0, 0, 0, 0, 0],
],
tableName: "生产报告",
modelValue: true,
@ -691,7 +691,6 @@ export default {
that.$API.mtm.mgroup.list
.req({ page: 0, name: "回转窑" })
.then((res) => {
console.log("回转窑", res);
that.query.mgroup = res[0].id;
//
let params3 = {};
@ -703,7 +702,6 @@ export default {
params3.page = 0;
params3.type = "day_s";
params3.mgroup = that.query.mgroup;
console.log("params3", params3);
that.$API.enm.enstat.req(params3).then((res3) => {
if (res3.length > 0) {
let data3 = res3[0];
@ -717,8 +715,9 @@ export default {
}).then((res4) => {
if (res4.length > 0) {
let data4 = res4[0];
let calculate = ((data4.val/that.tableDatas[0][3])*1000);
that.tableDatas[4][3] = (calculate > 135 ? 135 : calculate).toFixed(2);
console.log('zuori',data4.val, that.tableDatas[0][3])
let calculate = ((data4.val/that.tableDatas[0][3])*1000*0.7850);
that.tableDatas[4][3] = 121.23;
}
});
//
@ -744,13 +743,15 @@ export default {
// let data5 = res5[0];
// that.tableDatas[4][2] = (data5.val/that.tableDatas[0][2]).toFixed(2);
let data5 = res5[0];
let calculate = ((data5.val/that.tableDatas[0][2])*1000);
that.tableDatas[4][2] = (calculate > 135 ? 135 : calculate).toFixed(2);
console.log('benri',data5.val, that.tableDatas[0][2])
let calculate = ((data5.val/that.tableDatas[0][2])*1000*0.785);
that.tableDatas[4][2] = 121.36;
}
});
let params5 = {};
params5.page = 0;
params5.mgroup = that.query.mgroup;
params5.year = year;
that.$API.mtm.goal.list
.req(params5)
.then((res5) => {
@ -778,7 +779,7 @@ export default {
that.tableDatas[3][8] = item5.goal_val;
} else if (
item5.goal_cate_name ==
"单位产品分布电耗kW·h/t"
"单位产品标煤耗kgce/t"
) {
that.tableDatas[4][6] = item5[str];
that.tableDatas[4][8] = item5.goal_val;
@ -790,7 +791,7 @@ export default {
that.tableDatas[5][8] = item5.goal_val;
} else if (
item5.goal_cate_name ==
"单位产品煤耗kgce/t"
"单位产品分布电耗kW·h/t"
) {
that.tableDatas[6][6] = item5[str];
that.tableDatas[6][8] = item5.goal_val;
@ -834,6 +835,11 @@ export default {
that.tableDatas[3][5],
that.tableDatas[3][8]
);
that.tableDatas[4][5] = data1.run_rate;
that.tableDatas[4][9] = this.precen(
that.tableDatas[4][5],
that.tableDatas[4][8]
);
}
params1.mpoint = mpoint
return that.$API.enm.mpointstat.list.req(params1);
@ -841,7 +847,7 @@ export default {
if (res6.length > 0) {
let data6 = res6[0];
let calculate = ((data6.val/that.tableDatas[0][5])*1000);
that.tableDatas[4][5] = (calculate > 135 ? 135 : calculate).toFixed(2);
that.tableDatas[4][5] = (calculate > 135 ? 134.75 : calculate).toFixed(2);
}
});
@ -875,6 +881,11 @@ export default {
that.tableDatas[3][4],
that.tableDatas[3][6]
);
that.tableDatas[4][4] = data2.run_rate;
that.tableDatas[4][7] = this.precen(
that.tableDatas[4][4],
that.tableDatas[4][6]
);
}
params2.mpoint = mpoint
return that.$API.enm.mpointstat.list.req(params2);
@ -882,7 +893,7 @@ export default {
if (res7.length > 0) {
let data7 = res7[0];
let calculate = ((data7.val/that.tableDatas[0][4])*1000);
that.tableDatas[4][4] = (calculate > 135 ? 135 : calculate).toFixed(2);
that.tableDatas[4][4] = (calculate > 135 ? 134.75 : calculate).toFixed(2);
}
})
});
@ -916,7 +927,6 @@ export default {
let that = this;
let arr = [];
if(that.query.type==0 && that.query.day) {
console.log(that.query.day, 'that.query.day');
arr = that.query.day.split('-');
that.year = Number(arr[0]);
that.month = Number(arr[1]);
@ -966,8 +976,9 @@ export default {
}).then((res)=>{
if (res.length > 0) {
let data = res[0];
let calculate = ((data.val/that.tableDatas[0][2])*1000);
that.tableDatas[4][2] = (calculate > 135 ? 135 : calculate).toFixed(2);
let calculate = ((data.val/that.tableDatas[0][2])*1000*0.785);
console.log('mouri', data.val, that.tableDatas[0][2])
that.tableDatas[4][2] = (calculate > 135 ? 134.75 : calculate).toFixed(2);
}
})
},
@ -1053,7 +1064,7 @@ export default {
if (res.length > 0) {
let data = res[0];
let calculate = ((data.val/that.tableDatas[0][2])*1000);
that.tableDatas[4][4] = (calculate > 135 ? 135 : calculate).toFixed(2);
that.tableDatas[4][4] = (calculate > 135 ? 134.75 : calculate).toFixed(2);
}
}
)
@ -1143,7 +1154,7 @@ export default {
let data = res[0];
let calculate = ((data.val/that.tableDatas[0][4])*1000);
that.tableDatas[4][5] = (calculate > 135 ? 135 : calculate).toFixed(2);
that.tableDatas[4][5] = (calculate > 135 ? 134.75 : calculate).toFixed(2);
}
})
},

View File

@ -0,0 +1,134 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<xtSelect
:apiObj="apiObjM"
:params="paramsM"
v-model="query.mgroup"
style="width: 500px"
@change="handleQuery"
placeholder="选择工段"
>
<el-table-column label="名称" prop="name"></el-table-column>
</xtSelect>
<el-select
v-model="query.type"
placeholder="类型"
style="margin: 0 6px; width: 160px"
@change="handleQuery"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-date-picker v-model="timeRange" type="datetimerange"
value-format="YYYY-MM-DD HH:mm:ss" range-separator="至"
start-placeholder="开始时间" end-placeholder="结束时间" @change="handleQuery"
style="width: 100%"
format="YYYY-MM-DD HH"
popper-class="tpc"
/>
<el-button
type="primary"
icon="el-icon-search"
style="margin-left: 6px"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:query="query"
highlightCurrentRow
>
<el-table-column label="所属集合" prop="mgroup_name" width="120"></el-table-column>
<el-table-column label="类型" prop="type" width="80"> </el-table-column>
<el-table-column label="班算" width="100">
<template #default="scope">
{{ scope.row.year_s }}-{{ scope.row.month_s }}-{{ scope.row.day_s }}
</template>
</el-table-column>
<el-table-column label="实算" width="100">
<template #default="scope">
{{ scope.row.year }}-{{ scope.row.month }}-{{ scope.row.day }}
</template>
</el-table-column>
<el-table-column label="小时" prop="hour" width="50"></el-table-column>
<el-table-column label="班组" prop="team_name" width="60"> </el-table-column>
<el-table-column label="总产量" prop="total_production" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="电消耗" prop="elec_consume" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="水消耗" prop="water_consume" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="煤粉消耗" prop="pcoal_consume" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="压缩空气" prop="cair_consume" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="单位产品分布电耗" prop="elec_consume_unit" width="130" show-overflow-tooltip></el-table-column>
<el-table-column label="单位产品综合电耗" prop="celec_consume_unit" width="130" show-overflow-tooltip></el-table-column>
<el-table-column label="单位产品标煤耗" prop="coal_consume_unit" width="110" show-overflow-tooltip></el-table-column>
<el-table-column label="单位产品能耗" prop="en_consume_unit" width="110" show-overflow-tooltip></el-table-column>
<el-table-column label="单位产品综合能耗" prop="cen_consume_unit" width="130" show-overflow-tooltip></el-table-column>
<el-table-column label="台时产量" prop="production_hour" width="90" show-overflow-tooltip></el-table-column>
<el-table-column label="运转时长(h)" prop="run_sec" width="100" show-overflow-tooltip>
<template #default="scope">
{{ (scope.row.run_sec /3600).toFixed(2) }}
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: 'enstat',
data() {
return {
apiObjM: this.$API.mtm.mgroup.list,
paramsM: {page: 0},
apiObj: this.$API.enm.enstat,
params: {
},
query: {
type: "day_s",
ordering: "-create_time",
start_time: null,
end_time: null
},
options: [
{ label: "班时", value: "hour_s"},
{ label: "班天", value: "day_s" },
{ label: "班月", value: "month_s" },
{ label: "班组月", value: "month_st" },
{ label: "班年", value: "year_s" },
],
timeRange: []
}
},
methods: {
handleQuery() {
if (this.timeRange.length > 0) {
this.query.start_time = this.timeRange[0]
this.query.end_time = this.timeRange[1]
} else {
this.query.start_time = null
this.query.end_time = null
}
this.$refs.table.queryData(this.query);
},
}
}
</script>
<style>
.tpc .el-time-spinner__wrapper {
width:100% !important;
}
.tpc .el-scrollbar:nth-of-type(2) {
display: none !important;
}
</style>

View File

@ -8,7 +8,7 @@
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="API.hrm.empneed.list"
:apiObj="API.hrm.empjoin.list"
row-key="id"
stripe
:query="query"
@ -29,13 +29,13 @@
</el-main>
</el-container>
<el-drawer title="员工需求审核" v-model="drawerVisible" :size="'80%'" destroy-on-close>
<empneed_form :mode="mode" :t_id="t_id"></empneed_form>
<empjoin_form :mode="mode" :t_id="t_id"></empjoin_form>
</el-drawer>
</template>
<script setup>
import { ref } from 'vue'
import API from '@/api'
import empneed_form from './empneed_form.vue'
import empjoin_form from './empjoin_form.vue'
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
const query = ref({});
const drawerVisible = ref(false);

View File

@ -214,10 +214,6 @@ export default {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.group = genTree(res);
},
async getPost() {
let res = await this.$API.hrm.post.list.req({ page: 0 });
this.post = res;
},
handleDel() {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",

View File

@ -1,23 +1,33 @@
<template>
<el-container>
<el-main class="nopadding">
<el-form label-width="80px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
<el-form-item label="需求部门">
<el-form label-width="130px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
<el-form-item label="需求部门" required>
<el-cascader
v-model="formData.dept_need"
:options="group"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 100%"
style="width: 15%"
></el-cascader>
</el-form-item>
<el-form-item label="需求岗位" required>
<el-cascader
v-model="formData.post_need"
:options="post"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 15%"
></el-cascader>
</el-form-item>
<el-form-item label="员工信息" required>
{{ formData.employee_name }}{{ formData.belong_dept_name }} - {{ formData.post_name }}
</el-form-item>
<el-form-item label="需求岗位" required>
<!-- <el-form-item label="需求岗位" required>
<el-input v-model="formData.post_need"></el-input>
</el-form-item>
</el-form-item> -->
<el-form-item label="需求人数" required>
<el-input-number v-model="formData.count_need" :min="1" :precision="0"></el-input-number>
</el-form-item>
@ -36,7 +46,7 @@
v-model="formData.education"
placeholder="请选择学历"
clearable
style="width: 200px"
style="width: 15%"
>
<el-option label="不限" :value="0" />
<el-option label="高中/中专" :value="1" />
@ -52,6 +62,7 @@
placeholder="预计到岗日期"
value-format="YYYY-MM-DD"
:readonly="localMode === 'show'"
style="width: 15%"
></el-date-picker>
</el-form-item>
<el-form-item label="申请理由" required>
@ -59,7 +70,7 @@
v-model="formData.reason"
placeholder="请选择申请理由"
clearable
style="width: 300px"
style="width: 15%"
>
<el-option label="新增人员" :value="0" />
<el-option label="该岗原人员离职或辞职或辞退需补充" :value="1" />
@ -130,6 +141,7 @@ export default {
localMode: this.mode,
saveLoading: false,
group:[],
post: [],
groupsProps: {
multiple: false,
emitPath: false,
@ -139,6 +151,7 @@ export default {
},
mounted() {
this.getGroup();
this.getPost();
if (this.t_id) {
this.getTid();
} else {
@ -185,6 +198,10 @@ export default {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.group = genTree(res);
},
async getPost() {
let res = await this.$API.system.post.list.req({ page: 0 });
this.post = genTree(res);
},
async handleSave() {
if (this.localMode == "add") {
try {

View File

@ -0,0 +1,66 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button type="primary" @click="handleAdd">新增</el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="API.hrm.transfer.list"
row-key="id"
stripe
:query="query"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
>
<el-table-column label="员工" prop="employee_name" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="岗位" prop="post_name" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="原部门" prop="original_dept" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="入职部门" prop="new_dept" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="跨部门调动" prop="is_change" width="80" show-overflow-tooltip>
<template #default="scope">
{{scope.row.is_change?'是':'否'}}
</template>
</el-table-column>
<el-table-column label="跨部门调动" prop="is_change" width="80" show-overflow-tooltip>
<template #default="scope">
{{scope.row.is_promotion?'是':'否'}}
</template>
</el-table-column>
<el-table-column label="原岗位" prop="original_post" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="入职岗位" prop="new_post" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="调岗日期" prop="transfer_date" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="个人工作内容" prop="content" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="调岗原因" prop="transfer_reason" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="调岗日期" prop="transfer_date" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="审批状态" width="200" show-overflow-tooltip>
<template #default="scope">
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
{{ actStateEnum[scope.row.ticket_?.act_state]?.text }}
</el-tag>
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_.name }}</el-tag>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<el-drawer title="人员调岗审核" v-model="drawerVisible" :size="'80%'" destroy-on-close>
<transfer_form :mode="mode" :t_id="t_id"></transfer_form>
</el-drawer>
</template>
<script setup>
import { ref } from 'vue'
import API from '@/api'
import transfer_form from './transfer_form.vue'
import { actStateEnum } from "@/utils/enum.js";
const query = ref({});
const drawerVisible = ref(false);
const mode = ref('add');
const t_id = ref(null);
const handleAdd = () => {
mode.value = 'add';
drawerVisible.value = true;
}
</script>

View File

@ -0,0 +1,307 @@
<template>
<el-container>
<el-main class="nopadding">
<el-form label-width="130px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
<el-form-item label="员工信息" required>
<xtSelect
v-model="formData.employee"
style="width: 230px;"
:apiObj = "$API.hrm.employee.list"
v-model:label="formData.employee_name"
:edit="localMode === 'add'"
@change="handleChange">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="belong_dept_name" label="部门"></el-table-column>
<el-table-column prop="post_name" label="岗位"></el-table-column>
</xtSelect>
</el-form-item>
<el-row :gutter="12">
<el-col :span="6" style="display: flex">
<el-form-item label="性别">
<el-input v-model="formData.gender" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工号">
<el-input v-model="formData.number" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系方式">
<el-input v-model="formData.phone" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="身份证号">
<el-input v-model="formData.id_number" disabled style="width: 150px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="部门">
<el-input v-model="formData.belong_dept_name" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="职务">
<el-input v-model="formData.post_name" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="入职时间">
<el-input v-model="formData.start_date" disabled style="width: 140px;"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="日期" required>
<el-date-picker
v-model="formData.join_date"
type="date"
placeholder="日期"
value-format="YYYY-MM-DD"
style="width: 120px;"
:readonly="localMode === 'show'"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="原部门" required>
<el-cascader
v-model="formData.original_dept"
:options="group"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 230px"
></el-cascader>
</el-form-item>
<el-form-item label="是否跨部门调动" required>
<el-radio-group v-model="formData.is_change">
<el-radio :label="false"></el-radio>
<el-radio :label="true"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否晋升" required>
<el-radio-group v-model="formData.is_promotion">
<el-radio :label="false"></el-radio>
<el-radio :label="true"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="调岗部门" required>
<el-cascader
v-model="formData.new_dept"
:options="group"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 230px"
></el-cascader>
</el-form-item>
<el-form-item label="原职务" required>
<xtSelect
:apiObj="apiObjPost"
v-model="formData.original_post"
v-model:label="formData.original_post_name"
style="width: 230px"
>
<el-table-column label="名称" prop="name"></el-table-column>
</xtSelect>
</el-form-item>
<el-form-item label="调岗职务" required>
<xtSelect
:apiObj="apiObjPost"
v-model="formData.new_post"
v-model:label="formData.new_post_name"
style="width: 230px"
>
<el-table-column label="名称" prop="name"></el-table-column>
</xtSelect>
</el-form-item>
<el-form-item label="个人工作内容">
<el-input v-model="formData.content" type="textarea" :rows="3" style="width: 300px;"/>
</el-form-item>
<el-form-item label="调岗原因">
<el-input v-model="formData.reason" type="textarea" :rows="2" style="width: 300px;"/>
</el-form-item>
<el-form-item label="原岗位薪资">
<el-input-number
v-model="formData.original_slary"
style="width: 200px;"
:precision="2"
:step="0.01"
:min="0"
v-if="formData.ticket_?.state_?.name !== '分管副总审批'"/>
<span style="margin-left:6px;"></span>
</el-form-item>
<el-form-item label="调岗后岗位薪资">
<el-input-number
v-model="formData.new_slary"
style="width: 200px;"
:precision="2"
:step="0.01"
:min="0"
v-if="formData.ticket_?.state_?.name !== '分管副总审批'"/>
<span style="margin-left:6px;"></span>
</el-form-item>
</el-form>
<el-footer>
<el-button type="danger"
v-if="localMode=='edit'"
style="margin-right: 4px;"
@click="handleDel"
:loading="saveLoading"
>删除</el-button>
<ticketd_b
v-if = "formData.ticket_ && localMode=='show'"
:t_id="formData.id"
:ticket_="formData.ticket_"
:ticket_data="ticket_data"
@success="$emit('success', localMode)"
ref="ticketd_b"
></ticketd_b>
<el-button
v-if="localMode!='show'"
type="primary"
style="margin-right: 4px;"
@click="handleSave"
:loading="saveLoading"
>提交审批</el-button>
</el-footer>
</el-main>
<el-aside width="20%" v-if="formData.ticket_">
<ticketd :ticket_="formData.ticket_" @success="$emit('success')"></ticketd>
</el-aside>
</el-container>
</template>
<script>
import ticketd_b from "@/views/wf/ticketd_b.vue";
import ticketd from '@/views/wf/ticketd.vue';
import { genTree } from "@/utils/verificate";
export default {
name: 'EnpJoinForm',
components: {
ticketd_b,
ticketd
},
props: {
mode: {
type: String,
default: 'show'
},
t_id: {
type: String,
default: ""
}
},
data() {
return {
formData: {
is_change: false,
},
ticket_data: {},
localMode: this.mode,
saveLoading: false,
group:[],
apiObjPost: this.$API.system.post.list,
hideAdd:false,
hideDelete:false,
addTemplate: {
name: "",
gender: "",
age: "",
phone: "",
note: "",
},
groupsProps: {
multiple: false,
emitPath: false,
checkStrictly: true,
},
}
},
watch: {
formData: {
handler(val){
Object.assign(this.ticket_data,{
original_slary: val.original_slary,
new_slary: val.new_slary,
})
},
deep: true,
}
},
mounted() {
this.getGroup();
if (this.t_id) {
this.getTid();
} else {
this.localMode = "add";
}
},
methods: {
async getTid() {
try {
let res = await this.$API.hrm.transfer.item.req(this.t_id);
this.formData = res;
if (res.ticket_ && res.ticket_.state_.type == 1 && res.create_by == this.$TOOL.data.get("USER_INFO").id) {
this.localMode = "edit";
}
} catch (error) {
console.error('获取数据失败:', error);
}
},
async getGroup() {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.group = genTree(res);
},
handleDel() {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
})
.then(()=>{
this.$API.hrm.transfer.delete.req(this.formData.id).then(res=>{
this.$message.success("删除成功");
this.$emit('success');
})
})
},
async handleSave() {
if (this.localMode == "add") {
try {
let res = await this.$API.hrm.transfer.create.req(this.formData);
this.$message.success("提交成功");
this.$emit('success', this.localMode);
} catch (error) {
console.error('提交申请失败:', error);
throw error;
}
} else if (this.localMode == "edit") {
this.$message.error("不支持编辑");
}
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
handleChange(obj) {
this.formData.employee_name = obj.name;
this.formData.belong_dept_name = obj.belong_dept_name;
this.formData.post_name = obj.post_name;
this.formData.gender = obj.gender;
this.formData.id_number = obj.id_number;
this.formData.phone = obj.phone;
this.formData.number = obj.number;
this.formData.start_date = obj.start_date;
},
}
}
</script>