feat: 新增班次管理页面
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8230773736
commit
adef0b9b24
|
|
@ -231,6 +231,33 @@ export default {
|
||||||
return await http.get(`${config.API_URL}/mtm/shift/`, data);
|
return await http.get(`${config.API_URL}/mtm/shift/`, data);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
item: {
|
||||||
|
name: "获取详情",
|
||||||
|
req: async function (id) {
|
||||||
|
return await http.get(`${config.API_URL}/mtm/shift/${id}/`);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
name: "创建",
|
||||||
|
req: async function (data) {
|
||||||
|
return await http.post(`${config.API_URL}/mtm/shift/`, data);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: "更新",
|
||||||
|
req: async function (id, data) {
|
||||||
|
return await http.put(
|
||||||
|
`${config.API_URL}/mtm/shift/${id}/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
delete: {
|
||||||
|
name: "删除",
|
||||||
|
req: async function (id) {
|
||||||
|
return await http.delete(`${config.API_URL}/mtm/shift/${id}/`);
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
//班组
|
//班组
|
||||||
team: {
|
team: {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
<template>
|
||||||
|
<el-container>
|
||||||
|
<el-header>
|
||||||
|
<div class="left-panel">
|
||||||
|
<el-input style="margin-right: 5px" v-model="query.search" placeholder="名称/所属规则" clearable></el-input>
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
|
||||||
|
</div>
|
||||||
|
<div class="right-panel">
|
||||||
|
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'shift.create'"></el-button>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="nopadding">
|
||||||
|
<scTable ref="table" :apiObj="apiObj" :params="query" row-key="id" hidePagination>
|
||||||
|
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||||
|
<el-table-column label="名称" prop="name" min-width="120"></el-table-column>
|
||||||
|
<el-table-column label="所属规则" prop="rule" min-width="120"></el-table-column>
|
||||||
|
<el-table-column label="开始时间" prop="start_time_o" min-width="100"></el-table-column>
|
||||||
|
<el-table-column label="结束时间" prop="end_time_o" min-width="100"></el-table-column>
|
||||||
|
<el-table-column label="排序" prop="sort" width="80"></el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" align="center" width="140">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link size="small" type="primary" v-auth="'shift.update'"
|
||||||
|
@click="table_edit(scope.row)">编辑</el-button>
|
||||||
|
<el-divider direction="vertical"></el-divider>
|
||||||
|
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)">
|
||||||
|
<template #reference>
|
||||||
|
<el-button link size="small" v-auth="'shift.delete'" type="danger">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
<el-dialog :title="mode === 'add' ? '新增班次' : '编辑班次'" v-model="dialogVisible" :width="600" destroy-on-close>
|
||||||
|
<el-form ref="dialogForm" :model="form" :rules="rules" label-width="100px">
|
||||||
|
<el-form-item label="名称" prop="name">
|
||||||
|
<el-input v-model="form.name" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所属规则" prop="rule">
|
||||||
|
<el-input v-model="form.rule" clearable placeholder="同一规则下的班次将被一起循环"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="开始时间" prop="start_time_o">
|
||||||
|
<el-time-picker v-model="form.start_time_o" value-format="HH:mm:ss" placeholder="选择开始时间"
|
||||||
|
class="width-100"></el-time-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="结束时间" prop="end_time_o">
|
||||||
|
<el-time-picker v-model="form.end_time_o" value-format="HH:mm:ss" placeholder="选择结束时间"
|
||||||
|
class="width-100"></el-time-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序" prop="sort">
|
||||||
|
<el-input-number v-model="form.sort" :min="1" class="width-100"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" :loading="isSaving" @click="save">保存</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</el-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
const dForm = {
|
||||||
|
name: '',
|
||||||
|
rule: '默认',
|
||||||
|
start_time_o: '',
|
||||||
|
end_time_o: '',
|
||||||
|
sort: 1,
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
name: 'shift',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
apiObj: this.$API.mtm.shift.list,
|
||||||
|
query: {},
|
||||||
|
dialogVisible: false,
|
||||||
|
isSaving: false,
|
||||||
|
mode: 'add',
|
||||||
|
form: Object.assign({}, dForm),
|
||||||
|
rules: {
|
||||||
|
name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
||||||
|
rule: [{ required: true, message: '请输入所属规则', trigger: 'blur' }],
|
||||||
|
start_time_o: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
||||||
|
end_time_o: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleQuery() {
|
||||||
|
this.$refs.table.queryData(this.query);
|
||||||
|
},
|
||||||
|
table_add() {
|
||||||
|
this.mode = 'add';
|
||||||
|
this.form = Object.assign({}, dForm);
|
||||||
|
this.dialogVisible = true;
|
||||||
|
},
|
||||||
|
table_edit(row) {
|
||||||
|
this.mode = 'edit';
|
||||||
|
this.form = Object.assign({}, dForm, row);
|
||||||
|
this.dialogVisible = true;
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
this.$refs.dialogForm.validate(valid => {
|
||||||
|
if (!valid) return;
|
||||||
|
this.isSaving = true;
|
||||||
|
const req = this.mode === 'add'
|
||||||
|
? this.$API.mtm.shift.create.req(this.form)
|
||||||
|
: this.$API.mtm.shift.update.req(this.form.id, this.form);
|
||||||
|
req.then(() => {
|
||||||
|
this.dialogVisible = false;
|
||||||
|
this.$refs.table.refresh();
|
||||||
|
this.$message.success('操作成功');
|
||||||
|
}).finally(() => {
|
||||||
|
this.isSaving = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
table_del(row) {
|
||||||
|
this.$API.mtm.shift.delete.req(row.id).then(() => {
|
||||||
|
this.$refs.table.refresh();
|
||||||
|
this.$message.success('操作成功');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Loading…
Reference in New Issue