| | |
| | | >查询</el-button |
| | | > |
| | | <el-button icon="Refresh" @click="resetQuery">重置</el-button> |
| | | <el-button |
| | | <!-- <el-button |
| | | type="success" |
| | | icon="Plus" |
| | | @click="handleAdd" |
| | | v-hasPermi="['core:calendar:add']" |
| | | >新增日历</el-button |
| | | > |
| | | > --> |
| | | </el-form-item> |
| | | </el-row> |
| | | </el-form> |
| | | |
| | | <!-- <el-row :gutter="10" class="mb8"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | |
| | | v-model:showSearch="showSearch" |
| | | @queryTable="getList" |
| | | ></right-toolbar> |
| | | </el-row> --> |
| | | |
| | | <el-table |
| | | v-loading="loading" |
| | | </el-row> |
| | | <HxlhTable |
| | | style="width: 100%" |
| | | :columns="columns" |
| | | :data="calendarList" |
| | | @selection-change="handleSelectionChange" |
| | | :loading="loading" |
| | | :height="height" |
| | | :page="page" |
| | | @changePageNo="changePageNo" |
| | | @changePageSize="changePageSize" |
| | | @on-checkbox="handleCheckboxChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55" align="center" /> --> |
| | | <!-- <el-table-column label="${comment}" align="center" prop="id" /> --> |
| | | <el-table-column label="日历描述" align="center" prop="description" /> |
| | | <el-table-column label="日历类型" align="center" prop="type"> |
| | | <template #default="scope"> |
| | | <!-- <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> --> |
| | | <el-tag |
| | | :type="scope.row.type === '1' ? '' : 'success'" |
| | | disable-transitions |
| | | >{{ scope.row.type }}</el-tag |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="日历生效时间" |
| | | align="center" |
| | | prop="effectiveDate" |
| | | width="180" |
| | | > |
| | | <template #default="scope"> |
| | | <span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="日历失效时间" |
| | | align="center" |
| | | prop="expiringDate" |
| | | width="180" |
| | | > |
| | | <template #default="scope"> |
| | | <span>{{ parseTime(scope.row.expiringDate, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="日历内容" align="center" prop="content" /> |
| | | <el-table-column |
| | | label="适用工厂" |
| | | align="center" |
| | | prop="applicableFactory" |
| | | /> |
| | | <!-- 适用车间 --> |
| | | <el-table-column |
| | | label="适用车间" |
| | | align="center" |
| | | prop="applicableWorkshop" |
| | | /> |
| | | <!-- 适用工序 --> |
| | | <el-table-column |
| | | label="适用工序" |
| | | align="center" |
| | | prop="applicableProcess" |
| | | /> |
| | | <el-table-column label="创建者" align="center" prop="createBy" /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" /> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template #default="scope"> |
| | | <el-button |
| | | link |
| | | type="primary" |
| | | icon="Edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['core:calendar:edit']" |
| | | >修改</el-button |
| | | > |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | icon="Delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['core:calendar:remove']" |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | v-model:page="queryParams.pageNum" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <template #status="{ row }"> |
| | | <vxe-tag v-if="row.type === '1'" status="primary">周工作日</vxe-tag> |
| | | <vxe-tag v-if="row.type === '2'" status="success">节假日</vxe-tag> |
| | | </template> |
| | | <template #content="{ row }"> |
| | | <vxe-tag>周工作日</vxe-tag> |
| | | </template> |
| | | </HxlhTable> |
| | | |
| | | <!-- 添加或修改日历管理对话框 --> |
| | | <el-dialog :title="title" v-model="open" width="500px" append-to-body> |
| | |
| | | ref="calendarRef" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="80px" |
| | | label-width="105px" |
| | | > |
| | | <el-form-item label="日历描述" prop="description"> |
| | | <el-input v-model="form.description" placeholder="请输入描述" /> |
| | | </el-form-item> |
| | | <el-form-item label="日历类型" prop="type"> |
| | | <el-radio-group v-model="typeRadioNumber" @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-date-picker> |
| | | </el-form-item> |
| | | <div class="title_bar_line"> |
| | | <div class="line_short"></div> |
| | | <div>周工作设置</div> |
| | | <div class="line_long"></div> |
| | | </div> |
| | | <div |
| | | class="week_flex" |
| | | v-for="(item, index) in weekDaysSettingList" |
| | | :key="index" |
| | | > |
| | | <div class="week_flex_item">{{item.chineseName}}</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="item.work" @change="handleSetWorkDays"> |
| | | <el-radio :label="'y'">工作日</el-radio> |
| | | <el-radio :label="'n'">非工作日</el-radio> |
| | | </el-radio-group> |
| | | <div v-if="form.type === 1"> |
| | | <div class="title_bar_line"> |
| | | <div class="line_short"></div> |
| | | <div>周工作设置</div> |
| | | <div class="line_long"></div> |
| | | </div> |
| | | <div |
| | | class="week_flex" |
| | | v-for="(item, index) in weekDaysSettingList" |
| | | :key="index" |
| | | > |
| | | <div class="week_flex_item">{{ item.chineseName }}</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="item.work" @change="handleSetWorkDays"> |
| | | <el-radio :label="'y'">工作日</el-radio> |
| | | <el-radio :label="'n'">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="week_flex"> |
| | | <div class="week_flex_item">星期二</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="tueType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | <div v-if="form.type === 2"> |
| | | <div class="title_bar_line"> |
| | | <div class="line_short"></div> |
| | | <div>节假日设置</div> |
| | | <div class="line_long"></div> |
| | | </div> |
| | | <div class="week_flex mt20"> |
| | | <div class="week_flex_item">节日开始时间</div> |
| | | <div class="week_flex_item"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="holidays.startdate" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex mt20"> |
| | | <div class="week_flex_item">节日结束时间</div> |
| | | <div class="week_flex_item"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="holidays.enddate" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex"> |
| | | <div class="week_flex_item">星期三</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="wedType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex"> |
| | | <div class="week_flex_item">星期四</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="thuType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex"> |
| | | <div class="week_flex_item">星期五</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="friType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex"> |
| | | <div class="week_flex_item">星期六</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="satType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="week_flex"> |
| | | <div class="week_flex_item">星期日</div> |
| | | <div class="week_flex_item"> |
| | | <el-radio-group v-model="sunType"> |
| | | <el-radio :label="1">工作日</el-radio> |
| | | <el-radio :label="2">非工作日</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> --> |
| | | <el-form-item |
| | | label="适用工厂" |
| | | prop="applicableFactory" |
| | |
| | | > |
| | | <el-select |
| | | clearable |
| | | v-model="dateType" |
| | | v-model="form.applicableFactory" |
| | | style="width: 160px" |
| | | placeholder="请输入适用工厂" |
| | | @change="changePlant($event)" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) of dateTypeList" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | >{{ item.name }}</el-option |
| | | v-for="plant in plantList" |
| | | :key="plant.id" |
| | | :label="plant.plantName" |
| | | :value="plant.plantCode" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | |
| | | > |
| | | <el-select |
| | | clearable |
| | | v-model="dateType" |
| | | v-model="form.applicableWorkshop" |
| | | style="width: 160px" |
| | | placeholder="请输入适用车间" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) of dateTypeList" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | >{{ item.name }}</el-option |
| | | v-for="shop in shopList" |
| | | :key="shop.id" |
| | | :label="shop.shopName" |
| | | :value="shop.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | |
| | | > |
| | | <el-select |
| | | clearable |
| | | v-model="dateType" |
| | | v-model="form.applicableProcess" |
| | | style="width: 160px" |
| | | placeholder="请输入适用工序" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) of dateTypeList" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | >{{ item.name }}</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 label="创建者" prop="createBy" class="factory_use_item"> |
| | | <el-input type="text" v-model="form.createBy" placeholder="创建者" /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="创建时间" |
| | | prop="createTime" |
| | | class="factory_use_item" |
| | | > |
| | | <el-date-picker |
| | | clearable |
| | | v-model="form.createTime" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="更新者" prop="updateBy" class="factory_use_item"> |
| | | <el-input type="text" v-model="form.updateBy" placeholder="创建者" /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="更新时间" |
| | | prop="updateTime" |
| | | class="factory_use_item" |
| | | > |
| | | <el-date-picker |
| | | clearable |
| | | v-model="form.updateTime" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | |
| | | </template> |
| | | |
| | | <script setup name="Calendar"> |
| | | import HxlhTable from "@/components/HxlhTable"; |
| | | import { |
| | | listCalendar, |
| | | getCalendar, |
| | |
| | | addCalendar, |
| | | updateCalendar, |
| | | } from "@/api/basicData/calendar"; |
| | | |
| | | import { listAll_plant } from "@/api/basicData/plant"; |
| | | import { listAll_shop, listAps_shop } from "@/api/basicData/shop"; |
| | | import { selectProcessNameList } from "@/api/basicData/processRoute.js"; |
| | | const { proxy } = getCurrentInstance(); |
| | | |
| | | const calendarList = ref([]); |
| | | const open = ref(false); |
| | | const loading = ref(true); |
| | |
| | | const multiple = ref(true); |
| | | const total = ref(0); |
| | | const title = ref(""); |
| | | |
| | | const data = reactive({ |
| | | form: {}, |
| | | queryParams: { |
| | |
| | | { |
| | | day: "Monday", |
| | | chineseName: "星期一", |
| | | work:"y" |
| | | work: "y", |
| | | }, |
| | | { |
| | | day: "TuesDay", |
| | | chineseName: "星期二", |
| | | work:"y" |
| | | work: "y", |
| | | }, |
| | | { |
| | | day: "Wednesday", |
| | | chineseName: "星期三", |
| | | work:"y" |
| | | work: "y", |
| | | }, |
| | | { |
| | | day: "Thursday", |
| | | chineseName: "星期四", |
| | | work:"y" |
| | | work: "y", |
| | | }, |
| | | { |
| | | day:"Friday", |
| | | chineseName:"星期五", |
| | | work:"y" |
| | | day: "Friday", |
| | | chineseName: "星期五", |
| | | work: "y", |
| | | }, |
| | | { |
| | | day:"Saturday", |
| | | chineseName:"星期六", |
| | | work:"y" |
| | | day: "Saturday", |
| | | chineseName: "星期六", |
| | | work: "y", |
| | | }, |
| | | { |
| | | day:"Sunday", |
| | | chineseName:"星期日", |
| | | work:"y" |
| | | } |
| | | day: "Sunday", |
| | | chineseName: "星期日", |
| | | work: "y", |
| | | }, |
| | | ]); |
| | | const holidays = ref({ |
| | | startdate: "", |
| | | enddate: "", |
| | | }); |
| | | const plantList = ref([]); |
| | | const shopList = ref([]); |
| | | const allShopList = ref([]); |
| | | const processList = ref([]); |
| | | const height = ref(document.documentElement.clientHeight - 260 + "px;"); |
| | | // 表格配置-列表 |
| | | const columns = ref([ |
| | | { type: "checkbox", width: 60, align: "center" }, |
| | | { |
| | | title: "日历描述", |
| | | field: "description", |
| | | width: 150, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "日历类型", |
| | | field: "type", |
| | | width: 150, |
| | | align: "center", |
| | | slots: { default: "status" }, |
| | | }, |
| | | { |
| | | title: "日历生效时间", |
| | | field: "effectiveDate", |
| | | width: 100, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "日历失效时间", |
| | | field: "expiringDate", |
| | | width: 150, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "日历内容", |
| | | field: "content", |
| | | width: 200, |
| | | align: "center", |
| | | slots: { default: "content" }, |
| | | }, |
| | | { |
| | | 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: 90, |
| | | align: "center", |
| | | formatter: ({ cellValue, row, column }) => { |
| | | console.log(row.applicableFactory, "llll"); |
| | | listAps_shop({ plantCode: row.applicableFactory }).then((response) => { |
| | | console.log(response.rows, "适用车间"); |
| | | shopList.value = response.rows; |
| | | }); |
| | | for (let i = 0; i < shopList.value.length; i++) { |
| | | if (cellValue === shopList.value[i].id) { |
| | | return shopList.value[i].shopName; |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | title: "适用工序", |
| | | field: "applicableProcess", |
| | | width: 90, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "创建者", |
| | | field: "createBy", |
| | | width: 90, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "创建时间", |
| | | field: "createTime", |
| | | width: 90, |
| | | align: "center", |
| | | }, |
| | | ]); |
| | | // 分页属性 |
| | | const page = ref({ |
| | | total: 0, |
| | | current: 1, |
| | | size: 10, |
| | | }); |
| | | |
| | | /** 查询日历管理列表 */ |
| | | function getList() { |
| | | async function getList() { |
| | | loading.value = true; |
| | | listCalendar(queryParams.value).then((response) => { |
| | | calendarList.value = response.rows; |
| | | total.value = response.total; |
| | | loading.value = false; |
| | | }); |
| | | const res = await listAll_plant({}); |
| | | plantList.value = res.data; |
| | | } |
| | | |
| | | // 取消按钮 |
| | |
| | | } |
| | | |
| | | /** 新增按钮操作 */ |
| | | function handleAdd() { |
| | | async function handleAdd() { |
| | | reset(); |
| | | open.value = true; |
| | | 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"); |
| | | shopList.value = response.rows; |
| | | }); |
| | | selectProcessNameList({ orgCode: plant }).then((response) => { |
| | | processList.value = response.rows; |
| | | }); |
| | | } |
| | | /** 修改按钮操作 */ |
| | | function handleUpdate(row) { |
| | | reset(); |
| | |
| | | getList(); |
| | | }); |
| | | } else { |
| | | addCalendar(form.value).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | if (typeRadioNumber.value === 1) { |
| | | addCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | weekdays: weekDaysSettingList.value, |
| | | }, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | }else if(typeRadioNumber.value === 2){ |
| | | addCalendar({ |
| | | ...form.value, |
| | | content: { |
| | | holidays: holidays.value, |
| | | }, |
| | | }).then((response) => { |
| | | proxy.$modal.msgSuccess("新增成功"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | |
| | | } |
| | | // 设置周工作日 |
| | | function handleSetWorkDays(e) { |
| | | console.log(weekDaysSettingList.value,"设置周工作日") |
| | | console.log(weekDaysSettingList.value, "设置周工作日"); |
| | | } |
| | | getList(); |
| | | function changePageNo(currentPage) { |
| | | queryParams.value.pageNum = currentPage; |
| | | page.value.current = currentPage; |
| | | getList(); |
| | | } |
| | | function changePageSize(pageSize) { |
| | | page.value.current = 1; |
| | | queryParams.value.pageNum = 1; |
| | | queryParams.value.pageSize = pageSize; |
| | | getList(); |
| | | } |
| | | // function formatType(type) { |
| | | // if(type===1){ |
| | | // return "周工作" |
| | | // }else{ |
| | | // return "节假日" |
| | | // } |
| | | // } |
| | | onMounted(() => { |
| | | getList(); |
| | | }); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .column-with-margin { |
| | |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-content: center; |
| | | color: #333; |
| | | color: #606266; |
| | | font-weight: 700; |
| | | margin-left: 20px; |
| | | &.mt20 { |
| | | margin-top: 20px; |
| | | margin-left: 0 !important; |
| | | } |
| | | .week_flex_item { |
| | | &:nth-child(1) { |
| | | margin-top: 5px; |