| | |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | label-position="left" |
| | | > |
| | | <el-row type="flex" justify="left"> |
| | | <el-col :span="6"> |
| | | <el-row type="flex" justify="left" :gutter="20"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="日历描述" prop="description"> |
| | | <el-input |
| | | style="width: 140px" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="18" style="text-align: right"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="适用工厂" prop="plant"> |
| | | <el-select |
| | | style="width: 140px" |
| | | clearable |
| | | v-model="queryParams.plant" |
| | | placeholder="适用工厂" |
| | | > |
| | | <el-option |
| | | v-for="item in aps_factory" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="13" style="text-align: right"> |
| | | <el-form-item class="column-with-margin"> |
| | | <el-button type="primary" icon="Search" @click="handleQuery" |
| | | >查询</el-button |
| | |
| | | plain |
| | | icon="Plus" |
| | | @click="handleAdd" |
| | | v-hasPermi="['aps:calendar:update']" |
| | | v-hasPermi="['aps:calendar:add']" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | class="auto-height-grid" |
| | | > |
| | | <template #status="{ row }"> |
| | | <vxe-tag v-if="row.type === '1'" status="primary">周工作日</vxe-tag> |
| | | <vxe-tag v-if="row.type === '1'" status="primary">周工作</vxe-tag> |
| | | <vxe-tag v-if="row.type === '2'" status="success">节假日</vxe-tag> |
| | | </template> |
| | | <template #mark="{ row }"> |
| | | <div v-if="row.type === '1'"> |
| | | <span v-for="(item, index) in JSON.parse(row.content.value).weekdays" :key="index"> |
| | | <span v-if="item.work==='y'" status="success" class="mart5">{{item.chineseName}}: 工作日; </span> |
| | | <span v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 非工作日; </span> |
| | | </span> |
| | | <!-- <div v-for="(item, index) in JSON.parse(row.content.value).weekdays" :key="index"> |
| | | <span |
| | | v-for="(item, index) in JSON.parse(row.content.value).weekdays" |
| | | :key="index" |
| | | > |
| | | <span v-if="item.work === 'y'" status="success" class="mart5" |
| | | >{{ item.chineseName }}: 工作日; </span |
| | | > |
| | | <span v-if="item.work === 'n'" status="info" class="mart5" |
| | | >{{ item.chineseName }}: 非工作日; </span |
| | | > |
| | | </span> |
| | | <!-- <div v-for="(item, index) in JSON.parse(row.content.value).weekdays" :key="index"> |
| | | <vxe-tag v-if="item.work==='y'" status="success" class="mart5">{{item.chineseName}}: 工作日; </vxe-tag> |
| | | <vxe-tag v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 非工作日; </vxe-tag> |
| | | </div> --> |
| | | </div> |
| | | <div v-if="row.type === '2'"> |
| | | <div>{{JSON.parse(row.content.value).holidays.startdate}}至{{JSON.parse(row.content.value).holidays.enddate}}</div> |
| | | <div> |
| | | {{ JSON.parse(row.content.value).holidays.startdate }}至{{ |
| | | JSON.parse(row.content.value).holidays.enddate |
| | | }} |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template #buttons="{row}"> |
| | | <vxe-button mode="text" @click="handleUpdate(row)" v-hasPermi="['aps:calendar:update']" >修改</vxe-button> |
| | | <vxe-button mode="text" @click="handleDelete(row)" v-hasPermi="['aps:calendar:remove']" >删除</vxe-button> |
| | | <template #buttons="{ row }"> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="handleUpdate(row)" |
| | | v-hasPermi="['aps:calendar:update']" |
| | | >修改</el-button |
| | | > |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | @click="handleSetHolidays(row)" |
| | | v-hasPermi="['aps:calendar:remove']" |
| | | >设置节假日</el-button |
| | | > |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | @click="handleDelete(row)" |
| | | v-hasPermi="['aps:calendar:remove']" |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | </HxlhTable> |
| | | |
| | | <!-- 添加或修改日历管理对话框 --> |
| | | <el-dialog :title="title" v-model="open" width="500px" append-to-body> |
| | | <el-dialog :title="title" v-model="open" width="80%" append-to-body> |
| | | <el-form |
| | | ref="calendarRef" |
| | | :model="form" |
| | |
| | | <el-input v-model="form.description" placeholder="请输入描述" /> |
| | | </el-form-item> |
| | | <el-form-item label="日历类型" prop="type"> |
| | | <el-radio-group v-model="form.type" @change="handleSwitchType"> |
| | | <!-- <el-radio-group v-model="form.type" @change="handleSwitchType"> |
| | | <el-radio :label="'1'">周工作</el-radio> |
| | | <el-radio :label="'2'">节假日</el-radio> |
| | | </el-radio-group> |
| | | </el-radio-group> --> |
| | | <el-tag type="primary">周工作</el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="生效时间" prop="effectiveDate"> |
| | | <el-date-picker |
| | |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <div v-if="form.type === '1'"> |
| | | <div> |
| | | <div class="title_bar_line"> |
| | | <div class="line_short"></div> |
| | | <div>周工作设置</div> |
| | |
| | | > |
| | | <div class="week_flex_item">{{ item.chineseName }}</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="item.work" @change="handleSetWorkDays"> |
| | | <el-radio-group v-model="item.work"> |
| | | <el-radio :label="'y'">工作日</el-radio> |
| | | <el-radio :label="'n'">非工作日</el-radio> |
| | | </el-radio-group> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-form-item |
| | | <!-- <el-form-item |
| | | label="适用工厂" |
| | | prop="applicableFactory" |
| | | class="factory_use_item" |
| | | > --> |
| | | <div class="select_factory select_factory_dis">适用工厂/车间/工序</div> |
| | | <!-- <el-row :gutter="20" class="select_factory"> --> |
| | | <div |
| | | class="select_factory_dis" |
| | | v-for="(item, index) in applicableSettingList" |
| | | :key="index" |
| | | > |
| | | <!-- <el-col :span="7"> --> |
| | | <el-select |
| | | class="select_content" |
| | | clearable |
| | | v-model="form.applicableFactory" |
| | | v-model="item.factory" |
| | | style="width: 160px" |
| | | placeholder="请输入适用工厂" |
| | | @change="changePlant($event)" |
| | | > |
| | | <el-option |
| | | v-for="plant in plantList" |
| | | :key="plant.id" |
| | | :label="plant.plantName" |
| | | :value="plant.plantCode" |
| | | v-for="plant in aps_factory" |
| | | :key="plant.value" |
| | | :label="plant.label" |
| | | :value="`${plant.value};${plant.label}`" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="适用车间" |
| | | prop="applicableWorkshop" |
| | | class="factory_use_item" |
| | | > |
| | | <!-- </el-col> |
| | | <el-col :span="7"> --> |
| | | <el-select |
| | | class="select_content" |
| | | clearable |
| | | v-model="form.applicableWorkshop" |
| | | v-model="item.workshop" |
| | | style="width: 160px" |
| | | placeholder="请输入适用车间" |
| | | @change="changeWorkshop($event)" |
| | | > |
| | | <el-option |
| | | v-for="shop in shopList" |
| | | :key="shop.id" |
| | | :label="shop.shopName" |
| | | :value="shop.id" |
| | | :value="`${shop.id};${shop.shopName}`" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- </el-col> |
| | | <el-col :span="7"> --> |
| | | <el-select |
| | | class="select_content" |
| | | clearable |
| | | v-model="item.process" |
| | | style="width: 160px" |
| | | placeholder="请输入适用工序" |
| | | > |
| | | <el-option |
| | | v-for="process in processList" |
| | | :key="process.processNumber" |
| | | :label="process.processName" |
| | | :value="`${process.processNumber};${process.processName}`" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- </el-col> |
| | | <el-col :span="3"> --> |
| | | <el-button |
| | | class="select_content" |
| | | type="primary" |
| | | icon="Plus" |
| | | @click="handleAddFactory(item)" |
| | | circle |
| | | size="small" |
| | | /> |
| | | <el-button |
| | | v-if="applicableSettingList.length > 1" |
| | | class="select_content" |
| | | type="primary" |
| | | icon="Minus" |
| | | @click="handleMinusFactory(item)" |
| | | circle |
| | | size="small" |
| | | /> |
| | | <!-- </el-col> --> |
| | | </div> |
| | | <!-- </el-row> --> |
| | | <!-- </el-form-item> --> |
| | | <!-- <el-form-item |
| | | label="适用车间" |
| | | prop="applicableWorkshop" |
| | | class="factory_use_item" |
| | | > |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="适用工序" |
| | | prop="applicableProcess" |
| | | class="factory_use_item" |
| | | > |
| | | <el-select |
| | | clearable |
| | | v-model="form.applicableProcess" |
| | | style="width: 160px" |
| | | placeholder="请输入适用工序" |
| | | > |
| | | <el-option |
| | | v-for="process in processList" |
| | | :key="process.id" |
| | | :label="process.processName" |
| | | :value="process.processName" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="设置节假日" |
| | | v-model="openSetHolidays" |
| | | width="80%" |
| | | style="height: 570px" |
| | | append-to-body |
| | | > |
| | | <div class="height_dialog"> |
| | | <div class="height_dialog_scroll"> |
| | | <div class="grey_bg"> |
| | | <div v-if="expand"> |
| | | <div class="flex_item"> |
| | | <div>工作日历: </div> |
| | | <div>{{ form.description }}</div> |
| | | </div> |
| | | <div class="flex_item"> |
| | | <div>生效时间: </div> |
| | | <div>{{ form.effectiveDate }}</div> |
| | | </div> |
| | | <div class="flex_item"> |
| | | <div>失效时间: </div> |
| | | <div>{{ form.expiringDate }}</div> |
| | | </div> |
| | | <div class="flex_item"> |
| | | <div>适用工厂: </div> |
| | | <div class="flex_item_dis"> |
| | | <div |
| | | v-for="(item, index) in form.applicableTranslate" |
| | | :key="index" |
| | | > |
| | | {{ item.factory }} - {{ item.workshop }} - |
| | | {{ item.process }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="flex_item_expand_end" @click="handleToggleExpand"> |
| | | <el-icon :size="18" v-if="expand"><ArrowUpBold /></el-icon> |
| | | <el-icon v-else><ArrowDownBold /></el-icon> |
| | | </div> |
| | | </div> |
| | | <div class="title_flex"> |
| | | <div class="holiday_title">节假日列表</div> |
| | | <el-button type="primary" size="small" @click="hanldeAddHolidays" |
| | | >添加节假日</el-button |
| | | > |
| | | </div> |
| | | <div class="grey_bg"> |
| | | <div |
| | | class="flex_holidays_set" |
| | | v-for="(item, index) in formHolidays" |
| | | :key="index" |
| | | > |
| | | <div class="dis_error_wrap"> |
| | | <div class="flex_item"> |
| | | <div class="flex_item_title"> |
| | | <span class="error_require">*</span><span>节假日描述</span> |
| | | </div> |
| | | <div> |
| | | <el-input |
| | | style="width: 130px" |
| | | v-model="item.describe" |
| | | placeholder="请输入描述" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="error_text">请输入节假日描述</div> |
| | | </div> |
| | | <div class="dis_error_wrap"> |
| | | <div class="flex_item"> |
| | | <div class="flex_item_title"> |
| | | <span class="error_require">*</span><span>开始时间</span> |
| | | </div> |
| | | <div> |
| | | <el-date-picker |
| | | style="width: 130px" |
| | | clearable |
| | | v-model="item.startdate" |
| | | type="date" |
| | | :disabled-date="handleDisabledDate" |
| | | :default-value="form.effectiveDate" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="error_text">请输入开始时间</div> |
| | | </div> |
| | | <div class="dis_error_wrap"> |
| | | <div class="flex_item"> |
| | | <div class="flex_item_title"> |
| | | <span class="error_require">*</span><span>结束时间</span> |
| | | </div> |
| | | <div> |
| | | <el-date-picker |
| | | style="width: 130px" |
| | | clearable |
| | | v-model="item.enddate" |
| | | type="date" |
| | | :disabled-date="handleDisabledDate" |
| | | :default-value="form.expiringDate" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="error_text">请输入结束时间</div> |
| | | </div> |
| | | <div class="dis_error_wrap"> |
| | | <div class="flex_item"> |
| | | <el-button |
| | | v-if="formHolidays.length > 1" |
| | | type="danger" |
| | | size="small" |
| | | @click="handleDelSettingHolidays(item)" |
| | | >删除</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <el-form |
| | | class="mart10" |
| | | ref="holidaysRef" |
| | | :model="item" |
| | | :rules="holidayRules" |
| | | :inline="true" |
| | | label-width="105px" |
| | | > |
| | | <div v-for="(item, index) in formHolidays.holidays" :key="index"> |
| | | <el-form-item |
| | | label="节假日描述" |
| | | :prop="'holidays.' + index + '.describe'" |
| | | :rules="{ required: true, message: '请输入节假日描述', trigger: 'blur' }" |
| | | > |
| | | <el-input |
| | | style="width: 130px" |
| | | v-model="item.describe" |
| | | placeholder="请输入描述" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="开始时间" |
| | | :prop="'holidays.' + index + '.startdate'" |
| | | :rules="{ required: true, message: '请输入开始时间', trigger: 'blur' }" |
| | | > |
| | | <el-date-picker |
| | | style="width: 130px" |
| | | clearable |
| | | v-model="item.startdate" |
| | | type="date" |
| | | :disabled-date="handleDisabledDate" |
| | | :default-value="form.effectiveDate" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="结束时间" |
| | | :prop="'holidays.' + index + '.enddate'" |
| | | :rules="{ required: true, message: '请输入结束时间', trigger: 'blur' }" |
| | | > |
| | | <el-date-picker |
| | | style="width: 130px" |
| | | clearable |
| | | v-model="item.enddate" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :disabled-date="handleDisabledDate" |
| | | :default-value="form.expiringDate" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="" prop=""> |
| | | <el-button |
| | | v-if="formHolidays.length > 1" |
| | | type="danger" |
| | | size="small" |
| | | @click="handleDelSettingHolidays(item)" |
| | | >删除</el-button |
| | | > |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="openSetHolidays = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleSaveHolidaysForm" |
| | | >保存</el-button |
| | | > |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup name="Calendar"> |
| | | import moment from "moment"; |
| | | import HxlhTable from "@/components/HxlhTable"; |
| | | import { |
| | | listCalendar, |
| | |
| | | updateCalendar, |
| | | } from "@/api/basicData/calendar"; |
| | | import axios from "axios"; |
| | | import { listAll_plant } from "@/api/basicData/plant"; |
| | | import { listAll_plant, listByWorkShop } from "@/api/basicData/plant"; |
| | | import { listAll_shop, listAps_shop } from "@/api/basicData/shop"; |
| | | import { selectProcessNameList } from "@/api/basicData/processRoute.js"; |
| | | import { ElMessage } from "element-plus"; |
| | | const { proxy } = getCurrentInstance(); |
| | | const tableRef = ref() |
| | | const holidaysRef = ref(null); |
| | | const { aps_factory } = proxy.useDict("aps_factory"); |
| | | const tableRef = ref(); |
| | | const calendarList = ref([]); |
| | | const open = ref(false); |
| | | const openSetHolidays = ref(false); |
| | | const expand = ref(true); |
| | | const loading = ref(true); |
| | | const showSearch = ref(true); |
| | | const ids = ref([]); |
| | |
| | | const data = reactive({ |
| | | form: { |
| | | type: "1", |
| | | applicable: [ |
| | | { |
| | | factory: "", |
| | | workshop: "", |
| | | process: "", |
| | | }, |
| | | ], |
| | | }, |
| | | formHolidays: { |
| | | holidays: [ |
| | | { |
| | | enddate: "", |
| | | startdate: "", |
| | | describe: "", |
| | | }, |
| | | ], |
| | | }, |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | description: null, |
| | | plant: null, |
| | | type: null, |
| | | effectiveDate: null, |
| | | expiringDate: null, |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | type: [ |
| | | { |
| | | required: true, |
| | | message: "请选择日历类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | // type: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请选择日历类型", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | effectiveDate: [ |
| | | { |
| | | required: true, |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | applicableFactory: [ |
| | | { |
| | | required: true, |
| | | message: "请选择适用工厂", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | // holidayRules: { |
| | | // describe: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请输入节假日描述", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // startdate: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请输入开始时间", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // enddate: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请输入结束时间", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | }); |
| | | const { queryParams, form, rules } = toRefs(data); |
| | | const holidayRules = { |
| | | holidays: [{ required: true, message: "节假日是必填项", trigger: "blur" }], |
| | | }; |
| | | const { queryParams, form, rules, formHolidays } = toRefs(data); |
| | | const dateType = ref("周工作"); |
| | | const dateTypeList = ref([ |
| | | { |
| | |
| | | }, |
| | | ]); |
| | | const typeRadioNumber = ref(1); |
| | | const applicableSettingList = ref([ |
| | | { factory: "", workshop: "", process: "", id: 0 }, |
| | | ]); |
| | | const weekDaysSettingList = ref([ |
| | | { |
| | | day: "Monday", |
| | |
| | | work: "y", |
| | | }, |
| | | { |
| | | day: "TuesDay", |
| | | day: "Tuesday", |
| | | chineseName: "星期二", |
| | | work: "y", |
| | | }, |
| | |
| | | align: "center", |
| | | slots: { default: "mark" }, |
| | | }, |
| | | { |
| | | title: "适用工厂", |
| | | field: "applicableFactory", |
| | | width: 200, |
| | | align: "center", |
| | | formatter: ({ cellValue, row, column }) => { |
| | | console.log(cellValue, "000hsudhwhuwhuhwu"); |
| | | for (let i = 0; i < plantList.value.length; i++) { |
| | | console.log( |
| | | cellValue, |
| | | plantList.value[i].plantCode, |
| | | plantList.value[i].plantName, |
| | | "111hsudhwhuwhuhwu" |
| | | ); |
| | | if (cellValue === plantList.value[i].plantCode) { |
| | | return plantList.value[i].plantName; |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | title: '适用车间', |
| | | field: 'applicableWorkshop', |
| | | width: 200, |
| | | align: 'center', |
| | | formatter: (({ cellValue, row, column }) => { |
| | | |
| | | if (cellValue) { |
| | | for(let i=0;i<shopList.value.length;i++){ |
| | | if(cellValue===shopList.value[i].id){ |
| | | console.log(cellValue,'cellValue') |
| | | return shopList.value[i].shopName |
| | | } |
| | | } |
| | | } |
| | | return ''; |
| | | }) |
| | | }, |
| | | { |
| | | title: "适用工序", |
| | | field: "applicableProcess", |
| | | width: 200, |
| | | align: "center", |
| | | }, |
| | | // { |
| | | // title: "适用工厂", |
| | | // field: "applicableFactory", |
| | | // width: 200, |
| | | // align: "center", |
| | | // formatter: ({ cellValue, row, column }) => { |
| | | // if (cellValue) { |
| | | // for (let i = 0; i < plantList.value.length; i++) { |
| | | // if (cellValue === plantList.value[i].plantCode) { |
| | | // return plantList.value[i].plantName; |
| | | // } |
| | | // } |
| | | // } |
| | | // }, |
| | | // }, |
| | | // { |
| | | // title: "适用车间", |
| | | // field: "applicableWorkshop", |
| | | // width: 200, |
| | | // align: "center", |
| | | // formatter: ({ cellValue, row, column }) => { |
| | | // if (cellValue) { |
| | | // for (let i = 0; i < shopList.value.length; i++) { |
| | | // if (cellValue === shopList.value[i].id) { |
| | | // return shopList.value[i].shopName; |
| | | // } |
| | | // } |
| | | // } |
| | | // return ""; |
| | | // }, |
| | | // }, |
| | | // { |
| | | // title: "适用工序", |
| | | // field: "applicableProcess", |
| | | // width: 200, |
| | | // align: "center", |
| | | // }, |
| | | { |
| | | title: "创建者", |
| | | field: "createBy", |
| | |
| | | width: 200, |
| | | align: "center", |
| | | }, |
| | | { title: '操作', width: 100, fixed:"right", slots: { default: 'buttons' }, align: 'center' } |
| | | { |
| | | title: "操作", |
| | | width: 270, |
| | | fixed: "right", |
| | | slots: { default: "buttons" }, |
| | | align: "center", |
| | | }, |
| | | ]); |
| | | // 分页属性 |
| | | const page = ref({ |
| | |
| | | page.value.total = response.total; |
| | | loading.value = false; |
| | | }); |
| | | axios.all([ |
| | | /** 查询工厂列表 */ |
| | | listAll_plant({}), |
| | | /** 查询车间列表 */ |
| | | listAll_shop({}), |
| | | ]) |
| | | .then(axios.spread((response1, response2) => { |
| | | plantList.value = response1.data; |
| | | shopList.value = response2.data; |
| | | loading.value = false; |
| | | })) |
| | | .catch(error => { |
| | | console.error('请求出错:', error); |
| | | }); |
| | | |
| | | axios |
| | | .all([ |
| | | /** 查询工厂列表 */ |
| | | listAll_plant({}), |
| | | /** 查询车间列表 */ |
| | | listAll_shop({}), |
| | | ]) |
| | | .then( |
| | | axios.spread((response1, response2) => { |
| | | plantList.value = response1.data; |
| | | shopList.value = response2.data; |
| | | loading.value = false; |
| | | }) |
| | | ) |
| | | .catch((error) => { |
| | | console.error("请求出错:", error); |
| | | }); |
| | | } |
| | | |
| | | // 取消按钮 |
| | | function cancel() { |
| | | open.value = false; |
| | | reset(); |
| | | } |
| | | |
| | | // 表单重置 |
| | | function reset() { |
| | | form.value = { |
| | | id: null, |
| | | description: null, |
| | | type: "1", |
| | | effectiveDate: null, |
| | | expiringDate: null, |
| | | content: null, |
| | | applicableFactory: null, |
| | | applicableWorkshop: null, |
| | | applicableProcess: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | }; |
| | | proxy.resetForm("calendarRef"); |
| | | } |
| | | |
| | | /** 搜索按钮操作 */ |
| | |
| | | |
| | | /** 新增按钮操作 */ |
| | | async function handleAdd() { |
| | | reset(); |
| | | open.value = true; |
| | | form.value = { |
| | | applicable: [ |
| | | { |
| | | factory: "", |
| | | workshop: "", |
| | | process: "", |
| | | }, |
| | | ], |
| | | }; |
| | | title.value = "添加日历管理"; |
| | | // const res = await listAll_plant({}); |
| | | // plantList.value = res.data; |
| | | |
| | | console.log(res, "sjchhscwhciwhcwi"); |
| | | } |
| | | /** 选择工厂后事件 加载车间 和 工序 **/ |
| | | function changePlant(plant) { |
| | | listAps_shop({ plantCode: plant }).then((response) => { |
| | | console.log(response, "sbcsuhcuhscschsc"); |
| | | console.log(plant); |
| | | listAps_shop({ plantCode: plant.split(";")[0] }).then((response) => { |
| | | shopList.value = response.rows; |
| | | }); |
| | | selectProcessNameList({ orgCode: plant }).then((response) => { |
| | | processList.value = response.rows; |
| | | // selectProcessNameList({ orgCode: plant }).then((response) => { |
| | | // processList.value = response.rows; |
| | | // }); |
| | | } |
| | | function changeWorkshop(workShop) { |
| | | console.log(workShop.split(";")[0]); |
| | | listByWorkShop({ workShop: "气柜" }).then((res) => { |
| | | console.log(res, "workShop"); |
| | | processList.value = res.rows; |
| | | }); |
| | | } |
| | | function handleAddFactory(row) { |
| | | console.log(row); |
| | | applicableSettingList.value.push({ ...row, id: ++row.id }); |
| | | } |
| | | function handleMinusFactory(row) { |
| | | applicableSettingList.value = applicableSettingList.value.filter( |
| | | (item, index) => item !== row |
| | | ); |
| | | } |
| | | /** 修改按钮操作 */ |
| | | function handleUpdate(row) { |
| | | reset(); |
| | | const _id = row.id || ids.value; |
| | | getCalendar(_id).then((response) => { |
| | | form.value = response.data; |
| | | console.log( |
| | | form.value, |
| | | JSON.parse(response.data.content.value), |
| | | "hushchsuch" |
| | | ); |
| | | // form.value.content = JSON.parse(response.data.content.value); |
| | | if (form.value.type === "1") { |
| | | weekDaysSettingList.value = JSON.parse( |
| | |
| | | title.value = "修改日历管理"; |
| | | }); |
| | | } |
| | | |
| | | // 设置节假日 |
| | | function handleSetHolidays(row) { |
| | | form.value = { |
| | | ...row, |
| | | applicableTranslate: JSON.parse(row.applicableTranslate), |
| | | }; |
| | | if (!row.holidays) { |
| | | formHolidays.value = { |
| | | holidays: [ |
| | | { |
| | | enddate: "", |
| | | startdate: "", |
| | | describe: "", |
| | | }, |
| | | ], |
| | | }; |
| | | } else { |
| | | formHolidays.value.holidays = JSON.parse(row.holidays.value); |
| | | } |
| | | console.log(formHolidays.value.holidays, "formHolidays.value"); |
| | | openSetHolidays.value = true; |
| | | } |
| | | // 禁用日期 |
| | | function handleDisabledDate(date) { |
| | | const targetDate = moment(date).valueOf(); |
| | | const startDate = moment(form.value.effectiveDate).valueOf(); |
| | | const endDate = moment(form.value.expiringDate).valueOf(); |
| | | return targetDate < startDate || targetDate > endDate; |
| | | } |
| | | // 删除节假日设置 |
| | | function handleDelSettingHolidays(row) { |
| | | formHolidays.value.holidays = formHolidays.value.holidays.filter((item) => { |
| | | return item != row; |
| | | }); |
| | | } |
| | | // 添加节假日 |
| | | function hanldeAddHolidays() { |
| | | formHolidays.value.holidays.push({ |
| | | enddate: "", |
| | | startdate: "", |
| | | describe: "", |
| | | }); |
| | | } |
| | | function handleToggleExpand() { |
| | | expand.value = !expand.value; |
| | | } |
| | | // const confirmClick = () => { |
| | | // let formList = [predictionFormRef] |
| | | // let resultArr = []; |
| | | // let validate = (form) => { |
| | | // let result = new Promise((resolve, reject) => { |
| | | // form.value.validate(valid => { |
| | | // if (valid) { |
| | | // resolve() |
| | | // } else { |
| | | // reject() |
| | | // } |
| | | // }) |
| | | // }) |
| | | // resultArr.push(result) |
| | | // } |
| | | // formList.forEach(item => { |
| | | // validate(item) |
| | | // }) |
| | | // Promise.all(resultArr).then(() => { |
| | | // saveRule() // 校验成功之后 保存数据的方法 |
| | | // }) |
| | | // } |
| | | // const submitForm = () => { |
| | | // formRef.value.validate((valid) => { |
| | | // if (valid) { |
| | | // alert('submit!'); |
| | | // } else { |
| | | // alert('Form is not valid.'); |
| | | // return false; |
| | | // } |
| | | // }); |
| | | // }; |
| | | // 提交节假日 |
| | | function handleSaveHolidaysForm() { |
| | | console.log(holidaysRef.value, "表单dom"); |
| | | // holidaysRef.value.validate((valid) => { |
| | | // console.log(valid,"valid") |
| | | // if (valid) { |
| | | // proxy.$modal.msgSuccess('submit!'); |
| | | // } else { |
| | | // proxy.$modal.msgSuccess('Form is not valid.'); |
| | | // return false; |
| | | // } |
| | | // }) |
| | | holidaysRef.value.validate((valid) => { |
| | | if (!valid) { |
| | | proxy.$modal.msgSuccess("必填项不能为空"); |
| | | } |
| | | if (valid) { |
| | | updateCalendar({ |
| | | id: form.value.id, |
| | | holidays: formHolidays.value.holidays.map((item) => { |
| | | return { |
| | | startdate: moment(item.startdate).format("YYYY-MM-DD"), |
| | | enddate: moment(item.enddate).format("YYYY-MM-DD"), |
| | | describe: item.describe, |
| | | }; |
| | | }), |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | /** 提交按钮 */ |
| | | function submitForm() { |
| | | proxy.$refs["calendarRef"].validate((valid) => { |
| | | if (valid) { |
| | | if (applicableSettingList.value[0].factory === "") { |
| | | ElMessage({ |
| | | type: "error", |
| | | message: "至少选择一个适用工厂", |
| | | }); |
| | | return; |
| | | } |
| | | if (form.value.id != null) { |
| | | console.log(form.value, "修改日历==="); |
| | | if (form.value.type === "1") { |
| | | updateCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | weekdays: weekDaysSettingList.value, |
| | | }, |
| | | applicableWorkshop: form.value.applicableWorkshop, |
| | | applicableProcess: form.value.applicableProcess, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("修改成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } else if (form.value.type === "2") { |
| | | updateCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | holidays: holidays.value, |
| | | }, |
| | | applicableWorkshop: form.value.applicableWorkshop, |
| | | applicableProcess: form.value.applicableProcess, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("修改成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } |
| | | // if (form.value.type === "1") { |
| | | // updateCalendar({ |
| | | // ...form.value, |
| | | // content: { |
| | | // weekdays: weekDaysSettingList.value, |
| | | // }, |
| | | // applicableWorkshop: form.value.applicableWorkshop, |
| | | // applicableProcess: form.value.applicableProcess, |
| | | // }).then((response) => { |
| | | // proxy.$modal.msgSuccess("修改成功"); |
| | | // open.value = false; |
| | | // getList(); |
| | | // }); |
| | | // } else if (form.value.type === "2") { |
| | | updateCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | holidays: holidays.value, |
| | | }, |
| | | applicableWorkshop: form.value.applicableWorkshop.map((item) => { |
| | | return { |
| | | factory: item.factory.split(";")[0], |
| | | process: item.process.split(";")[0], |
| | | workshop: item.workshop.split(";")[0], |
| | | }; |
| | | }), |
| | | applicableProcess: form.value.applicableProcess, |
| | | type: "1", |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("修改成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | // } |
| | | } else { |
| | | if (form.value.type === "1") { |
| | | addCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | weekdays: weekDaysSettingList.value, |
| | | }, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } else if (form.value.type === "2") { |
| | | addCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | holidays: holidays.value, |
| | | }, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } |
| | | // if (form.value.type === "1") { |
| | | // addCalendar({ |
| | | // ...form.value, |
| | | // content: { |
| | | // weekdays: weekDaysSettingList.value, |
| | | // }, |
| | | // }).then((response) => { |
| | | // proxy.$modal.msgSuccess("新增成功"); |
| | | // open.value = false; |
| | | // getList(); |
| | | // }); |
| | | // } else if (form.value.type === "2") { |
| | | addCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | weekdays: weekDaysSettingList.value, |
| | | }, |
| | | // holidays: holidays.value, |
| | | applicable: applicableSettingList.value.map((item) => { |
| | | return { |
| | | factory: item.factory.split(";")[0], |
| | | process: item.process.split(";")[0], |
| | | workshop: item.workshop.split(";")[0], |
| | | }; |
| | | }), |
| | | applicableTranslate: JSON.stringify( |
| | | applicableSettingList.value.map((item) => { |
| | | return { |
| | | factory: item.factory.split(";")[1], |
| | | process: item.process.split(";")[1], |
| | | workshop: item.workshop.split(";")[1], |
| | | }; |
| | | }) |
| | | ), |
| | | type: "1", |
| | | // applicableCn: |
| | | //}, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | // } |
| | | } |
| | | } |
| | | }); |
| | |
| | | ); |
| | | } |
| | | function handleSwitchType(e) { |
| | | console.log(e, "日期类型切换"); |
| | | typeRadioNumber.value = e; |
| | | form.value.type = e; |
| | | form.value.effectiveDate = null; |
| | |
| | | form.value.applicableFactory = null; |
| | | form.value.applicableWorkshop = null; |
| | | form.value.applicableProcess = null; |
| | | } |
| | | // 设置周工作日 |
| | | function handleSetWorkDays(e) { |
| | | console.log(weekDaysSettingList.value, "设置周工作日"); |
| | | } |
| | | function changePageNo(currentPage) { |
| | | queryParams.value.pageNum = currentPage; |
| | |
| | | .factory_use_item { |
| | | margin-top: 10px; |
| | | } |
| | | .mart5{ |
| | | margin-top:5px; |
| | | .select_factory { |
| | | font-weight: 800; |
| | | font-size: 14px; |
| | | color: #606266; |
| | | } |
| | | .select_factory_dis { |
| | | margin-left: 34px; |
| | | } |
| | | .select_content { |
| | | margin-right: 10px; |
| | | margin-top: 20px; |
| | | // &:nth-child(1) { |
| | | // margin-left:34px; |
| | | // } |
| | | } |
| | | .mart5 { |
| | | margin-top: 5px; |
| | | } |
| | | .custom-height { |
| | | height: 200px; /* 或者使用 min-height */ |
| | |
| | | .auto-height-grid .xe-body .xe-body--row { |
| | | height: auto; /* 或者使用 min-height */ |
| | | } |
| | | .mart10 { |
| | | margin-top: 20px; |
| | | } |
| | | .h300 { |
| | | } |
| | | .height_dialog { |
| | | height: 400px; |
| | | overflow: hidden; |
| | | .height_dialog_scroll { |
| | | height: 100%; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | .dis_error_wrap { |
| | | .error_text { |
| | | margin-left: 20px; |
| | | font-size: 12px; |
| | | color: #f56c6c; |
| | | margin-left: 120px; |
| | | } |
| | | } |
| | | .grey_bg { |
| | | background: #f1f1f1; |
| | | width: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | .flex_holidays_set { |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | } |
| | | .flex_item { |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | margin-top: 10px; |
| | | .flex_item_title { |
| | | width: 85px; |
| | | color: #606266; |
| | | font-size: 14px; |
| | | font-weight: 600; |
| | | margin-left: 20px; |
| | | margin-right: 10px; |
| | | .error_require { |
| | | color: #f56c6c; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | .flex_item_dis { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: flex-start; |
| | | & div { |
| | | margin-bottom: 5px; |
| | | } |
| | | } |
| | | } |
| | | .flex_item_expand_end { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .title_flex { |
| | | margin-top: 20px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 20px; |
| | | .holiday_title { |
| | | font-size: 15px; |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | </style> |