| | |
| | | size="small" |
| | | /> |
| | | </div> |
| | | <!-- <div class="serch_box"> |
| | | <div class="serch_box"> |
| | | <div class="serchb"> |
| | | <el-select |
| | | v-model="queryForm.selectType" |
| | | placeholder="è¯·éæ©" |
| | | size="small" |
| | | style="width: 100%; height: 100%; font-size: 0.15rem" |
| | | style="width: 8rem; height: 2rem; font-size: 0.15rem" |
| | | > |
| | | <el-option |
| | | v-for="item in selectoptions" |
| | |
| | | placeholder="请è¾å
¥å
³é®è¯æç´¢" |
| | | style="border-left: 0.06rem solid #e2e2e2" |
| | | /> |
| | | </div> --> |
| | | </div> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="dialogVisible1 = true" |
| | | @click="addData" |
| | | style=" |
| | | width: 5.5rem; |
| | | height: 2rem; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon |
| | | ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon |
| | | >æ°å»º</el-button |
| | | > |
| | | <el-button |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon |
| | | ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon |
| | | >æå¨è·å</el-button |
| | | > |
| | | <el-button |
| | |
| | | </div> |
| | | <div style="margin-top: 1rem; height: 100%"> |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | :data="tableData" |
| | | height="500" |
| | | style="width: 100%" |
| | |
| | | @click="Send(scope.row)" |
| | | >派任å¡</el-button |
| | | > |
| | | <!-- <el-button size="small" type="text" @click="delt">ç¼è¾</el-button> --> |
| | | <el-button size="small" type="text" @click="Editdata(scope.row)" |
| | | >ç¼è¾</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | <!-- ä»»å¡ä¿¡æ¯å¼¹åºæ¡ --> |
| | | <!-- æ°å»º/ç¼è¾ä»»å¡ä¿¡æ¯å¼¹åºæ¡ --> |
| | | <el-dialog |
| | | v-model="dialogVisible1" |
| | | title="" |
| | | width="60%" |
| | | @close="handleClose(ruleFormRef)" |
| | | @close="resetForm(ruleFormRef)" |
| | | style="margin-top: 15.625rem" |
| | | > |
| | | <template #title> |
| | |
| | | ref="ruleFormRef" |
| | | :hide-required-asterisk="true" |
| | | > |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item prop="takeName"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | | <span |
| | | style="font-size: 0.88rem; color: black; font-weight: bold" |
| | | >ä»»å¡åç§°</span |
| | | > |
| | | </div> |
| | | </template> |
| | | <el-input |
| | | size="small" |
| | | v-model="form.takeName" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="trainKind"> |
| | |
| | | v-model="SenddialogVisible" |
| | | title="" |
| | | width="60%" |
| | | @close="handleClose(sendformRef)" |
| | | @close="resetForm(sendformRef)" |
| | | top="2%" |
| | | > |
| | | <template #title> |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> --> |
| | | |
| | | <!-- æ¡æ¶æ¹é导å
¥å¼¹åºæ¡ --> |
| | | <el-dialog v-model="importDialogVisible"> |
| | | <UploadExcel |
| | | @importExcelAfter="importExcelAfter" |
| | | url="/api/NjTask/Import" |
| | | url="api/NjTask/Import" |
| | | :template="{ |
| | | url: '/api/NjTask/DownLoadTemplate', |
| | | url: 'api/NjTask/DownLoadTemplate', |
| | | fileName: '任塿¨¡æ¿', |
| | | }" |
| | | /> |
| | |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { ref, reactive, onMounted } from "vue"; |
| | | import { ref, reactive, onMounted, toRef } from "vue"; |
| | | import { useRouter } from "vue-router"; |
| | | import { |
| | | GetPageData, |
| | |
| | | GetTemplateList, |
| | | Delete, |
| | | ExportApi, |
| | | Update, |
| | | } from "@/api/newapi/NjTask"; |
| | | import { GetUerType } from "@/api/user"; |
| | | import { formatTime } from "@/utils/index.js"; |
| | | import { ElMessage } from "element-plus"; |
| | | import UploadExcel from "@/components/basic/UploadExcel.vue"; |
| | | |
| | | //使ç¨è·¯ç± |
| | | const router = useRouter(); |
| | | // åå§åæ°æ® |
| | | const obj = { |
| | | selectName: "", |
| | | selectTime: [], // æ¶é´èå´ |
| | | selectType: "", |
| | | selectInput: "", |
| | | selectType: "", //éæ©çç±»å |
| | | selectInput: "", //è¾å
¥çæ°æ® |
| | | }; |
| | | const queryForm = ref({ |
| | | selectName: "", |
| | | selectTime: [], // æ¶é´èå´ |
| | | selectType: "", |
| | | selectInput: "", |
| | | }); |
| | | //æç´¢ä¼ çæ°æ® |
| | | const queryForm = toRef({ ...obj }); |
| | | //页é¢çæ°é |
| | | const pageTotal = ref(0); |
| | | //表åçæ°æ® |
| | | const tableData = ref([]); |
| | | const UerTypeoptions = ref({ |
| | | quality: [], //è´¨æ£ |
| | |
| | | mechanical: [], //æºæ¢° |
| | | trench: [], //å°æ² |
| | | }); |
| | | |
| | | //表åéªè¯è§å |
| | | const rules = reactive({ |
| | | takeName: [{ required: true, message: "请è¾å
¥ä»»å¡åç§°", trigger: "blur" }], |
| | | bogie: [{ required: true, message: "请è¾å
¥è½¬åæ¶", trigger: "blur" }], |
| | | coachNum: [{ required: true, message: "请è¾å
¥è½¦å¢å·", trigger: "blur" }], |
| | | processDept: [{ required: true, message: "请è¾å
¥æ£ä¿®çç»", trigger: "blur" }], |
| | |
| | | trainKind: [{ required: true, message: "请è¾å
¥è½¦å", trigger: "blur" }], |
| | | trainNum: [{ required: true, message: "请è¾å
¥è½¦ç»å·", trigger: "blur" }], |
| | | }); |
| | | //æ°å»ºç¼è¾è¡¨årefå¼ |
| | | const ruleFormRef = ref(); |
| | | const options = ref([]); |
| | | const props = { multiple: true }; |
| | | const table = ref(false); |
| | | const selectoptions = reactive([ |
| | | { label: "车å", value: "trainkind" }, |
| | | { label: "车ç»", value: "trainNum" }, |
| | | { label: "è¡é", value: "track" }, |
| | | { label: "æ£ä¿®çç»", value: "processkept" }, |
| | | ]); |
| | | //æ·»å /ç¼è¾çè¡¨åæ°æ® |
| | | const form = ref({ |
| | | takeName: "", //ä»»å¡åç§° |
| | | bogie: "", //è½¬åæ¶ |
| | | coachNum: "", //è½¦å¢ |
| | | processDept: "", //æ£ä¿®çç» |
| | | track: "", //è¡é |
| | | trainKind: "", //车å |
| | | trainNum: "", //车ç»å· |
| | | createTime: formatTime(new Date()), //å建æ¶é´ |
| | | createDate: formatTime(new Date()), //å建æ¶é´ |
| | | creater: JSON.parse(localStorage.getItem("user")).userName, //å建人 |
| | | }); |
| | | //å é¤ |
| | | const dialogVisible1 = ref(false); |
| | | //æ´¾ä»»å¡ |
| | | const SenddialogVisible = ref(false); |
| | | //派任å¡è¡¨årefå¼ |
| | | const sendformRef = ref(); |
| | | //æ¹é导å
¥ |
| | | const dialogVisible = ref(false); |
| | | //æ¹é导å
¥æ°æ® |
| | | const gridtableData = ref([]); |
| | | //模æ¿å表 |
| | | const temopitions = ref([]); |
| | | |
| | | const props = { multiple: true }; |
| | | const table = ref(false); |
| | | const type = ref("æ°å»º"); |
| | | //æç´¢éæ©çåæ®µ |
| | | const selectoptions = reactive([ |
| | | { label: "车å", value: "trainkind" }, |
| | | { label: "车ç»", value: "trainNum" }, |
| | | { label: "è¡é", value: "track" }, |
| | | { label: "æ£ä¿®çç»", value: "processkept" }, |
| | | ]); |
| | | //æäº¤çæ°æ®åé |
| | | const sendform = ref({}); |
| | | //æ¹é导å
¥ |
| | | const importDialogVisible = ref(false); |
| | | //ç嬿件ä¸ä¼ æåçåè° |
| | | const importExcelAfter = () => { |
| | | importDialogVisible.value = false; |
| | | initData(); |
| | | }; |
| | | |
| | | //æ°å»ºä»»å¡ä¿¡æ¯ |
| | | const AddNJinfomclick = async (formEl) => { |
| | | if (!formEl) return; |
| | | await formEl.validate((valid, fields) => { |
| | | if (valid) { |
| | | AddNJinfom(form.value).then((res) => { |
| | | if (res.code == 0) { |
| | | ElMessage({ |
| | | message: "å建æå", |
| | | type: "success", |
| | | }); |
| | | dialogVisible1.value = false; |
| | | } |
| | | }); |
| | | if (type.value == "æ°å»º") { |
| | | AddNJinfom(form.value).then((res) => { |
| | | if (res.code == 0) { |
| | | ElMessage({ |
| | | message: "å建æå", |
| | | type: "success", |
| | | }); |
| | | dialogVisible1.value = false; |
| | | initData(); |
| | | } |
| | | }); |
| | | } else { |
| | | //ç¼è¾ |
| | | Update(form.value).then((res) => { |
| | | if (res.code == 0) { |
| | | ElMessage({ |
| | | message: "ä¿®æ¹æå", |
| | | type: "success", |
| | | }); |
| | | dialogVisible1.value = false; |
| | | initData(); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | console.log("error submit!", fields); |
| | | } |
| | | }); |
| | | }; |
| | | //å é¤ |
| | | const dialogVisible1 = ref(false); |
| | | //æ´¾ä»»å¡ |
| | | const SenddialogVisible = ref(false); |
| | | const sendformRef = ref(); |
| | | //æ°å»ºä»»å¡ä¿¡æ¯ |
| | | const addData = () => { |
| | | type.value = "æ°å»º"; |
| | | dialogVisible1.value = true; |
| | | }; |
| | | //ç¼è¾ä»»å¡ä¿¡æ¯ |
| | | const Editdata = (row) => { |
| | | let obj = Object.assign({}, row); |
| | | type.value = "ç¼è¾"; |
| | | dialogVisible1.value = true; |
| | | form.value = obj; |
| | | }; |
| | | |
| | | //æäº¤ |
| | | const sublit = async (formEl) => { |
| | | let data = { |
| | |
| | | type: "success", |
| | | }); |
| | | SenddialogVisible.value = false; |
| | | initData(); |
| | | }); |
| | | } else { |
| | | console.log("error submit!", fields); |
| | |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | initData(); |
| | | SenddialogVisible.value = false; |
| | | }); |
| | | } else { |
| | |
| | | } |
| | | }); |
| | | }; |
| | | //æ¹é导å
¥ |
| | | const dialogVisible = ref(false); |
| | | |
| | | //æ°æ®å¯¼åºçæ¹æ³ |
| | | const printExcel = () => { |
| | | // æ¥è¯¢æ¡ä»¶ |
| | | const startTime = formatTime(queryForm.selectTime[0]); |
| | | const endTime = formatTime(queryForm.selectTime[1]); |
| | | const startTime = formatTime(queryForm.value.selectTime[0]); |
| | | const endTime = formatTime(queryForm.value.selectTime[1]); |
| | | const filter = [ |
| | | { |
| | | name: queryForm.selectType, |
| | | value: queryForm.selectInput, |
| | | name: queryForm.value.selectType, |
| | | value: queryForm.value.selectInput, |
| | | displayType: "String", |
| | | }, |
| | | |
| | |
| | | filter, |
| | | }); |
| | | }; |
| | | //æ¹é导å
¥æ°æ® |
| | | const gridtableData = ref([]); |
| | | // quality: [], //è´¨æ£ |
| | | // electric: [], //çµæ° |
| | | // mechanical: [], //æºæ¢° |
| | | // trench: [], //å°æ² |
| | | //æ´¾ä»»å¡æ¹æ³ |
| | | const Send = (val) => { |
| | | SenddialogVisible.value = true; |
| | | sendform.value = { ...val }; |
| | | getTemplateList(); |
| | | GetUerType().then((res) => { |
| | | UerTypeoptions.value.quality = res.data.filter( |
| | | (item) => item.roleId != 1 && item.roleId == 2 |
| | | ); |
| | | UerTypeoptions.value.quality = res.data.filter((item) => { |
| | | return item.user_Id != 1 && item.roleName.substring(2, 4) == "è´¨æ£"; |
| | | }); |
| | | UerTypeoptions.value.electric = res.data.filter( |
| | | (item) => item.roleId != 1 && item.roleId == 3 |
| | | (item) => |
| | | item.user_Id != 1 && |
| | | item.roleName.substring(2, 4) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "çµæ°" |
| | | ); |
| | | UerTypeoptions.value.mechanical = res.data.filter( |
| | | (item) => item.roleId != 1 && item.roleId == 4 |
| | | (item) => |
| | | item.user_Id != 1 && |
| | | item.roleName.substring(2, 4) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "æºæ¢°" |
| | | ); |
| | | UerTypeoptions.value.trench = res.data.filter( |
| | | (item) => item.roleId != 1 && item.roleId == 5 |
| | | (item) => |
| | | item.user_Id != 1 && |
| | | item.roleName.substring(2, 4) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "å°æ²" |
| | | ); |
| | | }); |
| | | console.log(UerTypeoptions.value); |
| | | }; |
| | | //å 餿¹æ³ |
| | | const delt = () => { |
| | | dialogVisible1.value = true; |
| | | }; |
| | | //æ¹éå é¤ |
| | | const ids = ref([]); |
| | | const SelectionChange = (val) => { |
| | | ids.value = []; |
| | | ids.value = val.map((item) => item.id); |
| | | }; |
| | | const deleteAll = () => { |
| | | if (ids.value.length == 0) { |
| | | ElMessage({ message: "è¯·éæ©è¦å é¤çæ°æ®", type: "error" }); |
| | | return; |
| | | } |
| | | Delete(ids.value).then((res) => { |
| | | ElMessage({ message: "å 餿å", type: "success" }); |
| | | initData(); |
| | | }); |
| | | }; |
| | | const temopitions = ref([]); |
| | | //è·åæææ¨¡æ¿ |
| | | const getTemplateList = () => { |
| | | GetTemplateList({ |
| | |
| | | sendform.value = { ...sendform.value, ...res.data[0] }; |
| | | }); |
| | | }; |
| | | //æ¹éå é¤ |
| | | const ids = ref([]); //æ¹éå é¤çid |
| | | const SelectionChange = (val) => { |
| | | //è·åæ¹éå é¤çid |
| | | ids.value = []; |
| | | ids.value = val.map((item) => item.id); |
| | | }; |
| | | //å é¤éä¸çæ°æ® |
| | | const deleteAll = () => { |
| | | if (ids.value.length == 0) { |
| | | ElMessage({ message: "è¯·éæ©è¦å é¤çæ°æ®", type: "error" }); |
| | | return; |
| | | } |
| | | Delete(ids.value).then((res) => { |
| | | ElMessage({ message: "å 餿å", type: "success" }); |
| | | initData(); |
| | | }); |
| | | }; |
| | | |
| | | //å页请æ±åæ° |
| | | const pageQuery = ref({ |
| | | page: 1, //å½åé¡µé¢ |
| | | rows: 10, //æ¯é¡µæ¾ç¤ºæ¡æ° |
| | | order: "createTime", //æåºæ¹å¼ |
| | | sort: "desc", //æåºå段 |
| | | order: "desc", //æåºæ¹å¼ |
| | | sort: "", //æåºå段 |
| | | wheres: "", //æ¡ä»¶æ¥è¯¢ |
| | | }); |
| | | |
| | |
| | | pageQuery.value.page = val; |
| | | initData(); |
| | | }; |
| | | const pageTotal = ref(0); |
| | | |
| | | //页é¢åå§åæ¹æ³ |
| | | const initData = () => { |
| | | // æ¥è¯¢æ¡ä»¶ |
| | | const startTime = formatTime(queryForm.value.selectTime[0]); |
| | |
| | | { |
| | | name: queryForm.value.selectType, |
| | | value: queryForm.value.selectInput, |
| | | displayType: "String", |
| | | displayType: "like", |
| | | }, |
| | | { name: "createtime", value: startTime, displayType: "ThanOrEqual" }, |
| | | { name: "createtime", value: endTime, displayType: "LessOrEqual" }, |
| | |
| | | pageQuery.value.page = 1; |
| | | initData(); |
| | | }; |
| | | //é置表å |
| | | const resetForm = (formEl) => { |
| | | if (!formEl) return; |
| | | formEl.resetFields(); |
| | | form.value = { |
| | | bogie: "", //è½¬åæ¶ |
| | | coachNum: "", //è½¦å¢ |
| | | processDept: "", //æ£ä¿®çç» |
| | | track: "", //è¡é |
| | | trainKind: "", //车å |
| | | trainNum: "", //车ç»å· |
| | | creater: "", |
| | | createDate: formatTime(new Date()), //å建æ¶é´ |
| | | }; |
| | | }; |
| | | //éç½®æ¹æ³ |
| | | const resetQuery = () => { |
| | | queryForm.value = Object.assign({}, obj); |
| | | pageQuery.value.page = 1; |
| | | initData(); |
| | | }; |
| | | //é置表å |
| | | const handleClose = (formEl) => { |
| | | if (!formEl) return; |
| | | formEl.resetFields(); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | initData(); |
| | | GetUerType().then((res) => { |
| | | UerTypeoptions.value.quality = res.data.filter( |
| | | (item) => item.roleId != 1 && item.roleName.substring(2, 2) == "è´¨æ£" |
| | | ); |
| | | UerTypeoptions.value.electric = res.data.filter( |
| | | (item) => |
| | | item.roleId != 1 && |
| | | item.roleName.substring(2, 2) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "çµæ°" |
| | | ); |
| | | UerTypeoptions.value.mechanical = res.data.filter( |
| | | (item) => |
| | | item.roleId != 1 && |
| | | item.roleName.substring(2, 2) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "æºæ¢°" |
| | | ); |
| | | UerTypeoptions.value.trench = res.data.filter( |
| | | (item) => |
| | | item.roleId != 1 && |
| | | item.roleName.substring(2, 2) != "è´¨æ£" && |
| | | item.roleName.substring(0, 2) == "å°æ²" |
| | | ); |
| | | }); |
| | | }); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .Taskmanagement { |
| | | display: flex; |
| | | background-color: #fff; |
| | | |
| | | .content { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .serch { |
| | | display: flex; |
| | | margin-top: 1.31rem; |
| | | align-items: center; |
| | | |
| | | .time_box { |
| | | display: flex; |
| | | align-items: center; |
| | | text-align: center; |
| | | margin-left: 0.98rem; |
| | | |
| | | .time { |
| | | box-sizing: border-box; |
| | | width: 6.88rem; |
| | |
| | | justify-content: center; |
| | | } |
| | | } |
| | | |
| | | .serch_box { |
| | | display: flex; |
| | | align-items: center; |
| | | text-align: center; |
| | | margin-left: 0.98rem; |
| | | border-radius: 0.38rem; |
| | | |
| | | .serchb { |
| | | box-sizing: border-box; |
| | | width: 6.88rem; |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | input { |
| | | box-sizing: border-box; |
| | | outline: none; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .btns { |
| | | display: flex; |
| | | justify-content: space-between; |
| | |
| | | .confirmButtonClass { |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .el-message-box .el-message-box__btns { |
| | | flex-direction: row-reverse !important; |
| | | justify-content: normal !important; |