.env.development | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
package.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/basicData/bom/bom.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/i18n/locales/plan/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/demand/planManage/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/mainPlan/gasPlanning/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/mainPlan/gasProduceStatics/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/mainPlan/pipePlanning/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/mainPlan/pipeProduceStatics/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/dict/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.env.development
@@ -10,4 +10,4 @@ # é åå端æå¡ # VITE_APP_LOCAL = 'int' # VITE_APP_LOCAL = 'zhl' VITE_APP_LOCAL = 'int' VITE_APP_LOCAL = 'cxl' package.json
@@ -45,6 +45,7 @@ "devDependencies": { "@vitejs/plugin-vue": "5.0.5", "moment": "^2.30.1", "qs": "^6.14.0", "sass": "1.77.5", "terser": "^5.39.0", "unplugin-auto-import": "^0.17.6", src/api/basicData/bom/bom.js
@@ -1,67 +1,82 @@ import request from '@/utils/request' import request from "@/utils/request"; import qs from "qs"; // export function refreshBomRouteStorageDataList() { return request({ url: "/aps/refreshBomRouteStorageData", method: "post", headers: { "Content-Type": "application/x-www-form-urlencoded", // 注æï¼é常axiosä¼èªå¨è®¾ç½®æ£ç¡®çContent-Typeï¼é¤éä½ ç¹å«æå®äºheadersã对äºFormDataï¼é常ä¸éè¦æå¨è®¾ç½®è¿ä¸ªheaderã }, data: qs.stringify({ orgCode: "FORTUNA" }), }); } // /ApsBomHeader/list export function listApsBomHeaderList(query) { return request({ url: '/aps/ApsBomHeader/list', method: 'get', params: query }) url: "/aps/ApsBomHeader/list", method: "get", params: query, }); } // /ApsBom/list export function listApsBomLineList(query) { return request({ url: '/aps/ApsBom/list', method: 'get', params: query }) url: "/aps/ApsBom/list", method: "get", params: query, }); } // /ApsBomHeader/refreshBomData export function listApsBomRefreshBomDataList() { return request({ url: '/schedule/job/refreshBomData', method: 'post', }) url: "/schedule/job/refreshBomData", method: "post", }); } // æ¥è¯¢BOMæ°æ®ç®¡çå表 export function listApsBom(query) { return request({ url: '/aps/ApsBom/list', method: 'get', params: query }) url: "/aps/ApsBom/list", method: "get", params: query, }); } // æ¥è¯¢BOMæ°æ®ç®¡çè¯¦ç» export function getApsBom(id) { return request({ url: '/ApsBom/ApsBom/' + id, method: 'get' }) url: "/ApsBom/ApsBom/" + id, method: "get", }); } // æ°å¢BOMæ°æ®ç®¡ç export function addApsBom(data) { return request({ url: '/ApsBom/ApsBom', method: 'post', data: data }) url: "/ApsBom/ApsBom", method: "post", data: data, }); } // ä¿®æ¹BOMæ°æ®ç®¡ç export function updateApsBom(data) { return request({ url: '/ApsBom/ApsBom', method: 'put', data: data }) url: "/ApsBom/ApsBom", method: "put", data: data, }); } // å é¤BOMæ°æ®ç®¡ç export function delApsBom(id) { return request({ url: '/ApsBom/ApsBom/' + id, method: 'delete' }) url: "/ApsBom/ApsBom/" + id, method: "delete", }); } src/utils/i18n/locales/plan/index.js
@@ -58,6 +58,7 @@ selectMonth: "éæ©æä»½", statistical: "ç»è®¡æ¹å¼", selectDateRange: "éæ©åºé´", selectDateMonth: "éæ©æä»½", requireTraceID: "éæ±è¿½æº¯ID", itemNumber: "æå·", pipelineOrderRequire: "管路订åéæ±", @@ -283,6 +284,7 @@ selectMonth: "Select Month", statistical: "Statistical method", selectDateRange: "Select interval", selectDateMonth: "Select Month", requireTraceID: "Require track ID", itemNumber: "Item number", pipelineOrderRequire: "Pipeline order requirements", src/views/demand/planManage/index.vue
@@ -39,7 +39,7 @@ plain icon="Plus" @click="handleAdd" v-hasPermi="['aps:calendar:add']" v-hasPermi="['aps:management:add']" >æ°å¢</el-button > </el-col> @@ -50,7 +50,7 @@ icon="Edit" :disabled="single" @click="handleUpdate(null)" v-hasPermi="['aps:calendar:update']" v-hasPermi="['aps:management:edit']" >ä¿®æ¹</el-button > </el-col> @@ -61,7 +61,7 @@ icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['aps:calendar:remove']" v-hasPermi="['aps:management:remove']" >å é¤</el-button > </el-col> @@ -88,27 +88,26 @@ type="primary" size="small" @click="handleUpdate(row)" v-hasPermi="['aps:calendar:update']" v-hasPermi="['aps:management:edit']" >ä¿®æ¹</el-button > <el-button type="default" size="small" @click="handleSetCycle(row)" v-hasPermi="['aps:calendar:remove']" v-hasPermi="['aps:planCycle:edit']" >计å卿</el-button > <el-button type="success" size="small" v-hasPermi="['aps:calendar:remove']" >çæè®¡å</el-button > <el-button type="danger" size="small" @click="handleDelete(row)" v-hasPermi="['aps:calendar:remove']" v-hasPermi="['aps:management:remove']" >å é¤</el-button > </template> @@ -264,6 +263,7 @@ const router = useRouter(); const { aps_area } = proxy.useDict("aps_area"); const { aps_plan_rule } = proxy.useDict("aps_plan_rule"); const { aps_plan_type } = proxy.useDict("aps_plan_type"); const tableRef = ref(); const calendarList = ref([]); const open = ref(false); @@ -354,6 +354,15 @@ field: "type", width: 200, align: "center", formatter: ({ cellValue, row, column }) => { if (cellValue) { for (let i = 0; i < aps_plan_type.value.length; i++) { if (cellValue === aps_plan_type.value[i].value) { return aps_plan_type.value[i].label; } } } }, }, { title: "计åæäº§åºå", @@ -511,6 +520,7 @@ // 计å卿 function handleSetCycle(row) { openSetCycle.value = true; console.log(row,row.id,"==========") if (!row.cycle) { formCycle.value = { cycle: { @@ -519,6 +529,7 @@ period: "1", periodStart: moment(Date.now()).format("YYYY-MM-DD"), periodEnd: "", planId: row.id }, }; let nowTime = moment(formCycle.value.cycle.periodStart) @@ -530,7 +541,7 @@ } else { formCycle.value = row; } console.log(formCycle.value, "formCycle.value"); console.log(formCycle.value, "formCycle.value+++++==="); } function handleToggleExpand() { expand.value = !expand.value; @@ -572,14 +583,15 @@ }); } function submitFormCycle() { console.log(formCycle.value,"formCycle.value=====") redundantOrderList({ ...formCycle.value.cycle, planId: formCycle.value.id, }) .then((res) => { if (res.code === 200) { proxy.$modal.msgSuccess("æ´æ°æå"); openSetCycle.value = false; getList(); } else { openSetCycle.value = false; } @@ -587,7 +599,6 @@ .catch(() => { openSetCycle.value = false; }); getList(); } function handleGoToCycle() { router.push({ src/views/mainPlan/gasPlanning/index.vue
@@ -9,7 +9,11 @@ > <el-row type="flex" justify="left"> <el-col :span="8"> <el-form-item :style="{ width: '100%' }" :label="$t('plan.query.selectMonth')" prop="description"> <el-form-item :style="{ width: '100%' }" :label="$t('plan.query.selectMonth')" prop="description" > <el-date-picker clearable v-model="queryParams.date" @@ -20,477 +24,275 @@ </el-date-picker> </el-form-item> </el-col> <el-col :span="16" style="text-align: right"> <el-form-item class="column-with-margin"> <el-button type="primary" icon="Search" @click="handleQuery" >{{$t("common.common.query")}}</el-button <el-col :span="8"> <el-form-item :label="$t('basic.table.applicableFactories')" style="width: 100%" prop="plant" > <el-select clearable v-model="queryParams.applicableFactory" :placeholder="$t('basic.table.applicableFactories')" > <el-button icon="Refresh" @click="resetQuery">{{$t("common.common.reset")}}</el-button> <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="8" style="text-align: right"> <el-form-item class="column-with-margin"> <el-button type="primary" icon="Search" @click="handleQuery">{{ $t("common.common.query") }}</el-button> <el-button icon="Refresh" @click="resetQuery">{{ $t("common.common.reset") }}</el-button> </el-form-item> </el-col> </el-row> </el-form> <div class="box_container"> <el-row> <el-col :span="!clickedTableRef?22:20"> <div class="title_text">{{$t('plan.title.pipePlanCapacity')}}</div> </el-col> <el-col :span="1" v-if="!clickedTableRef"> <el-button class="title_btn" type="default" @click="editRowEvent" >{{$t("common.common.edit")}}</el-button> </el-col> <el-col :span="1.8" v-if="clickedTableRef"> <el-button class="title_btn" type="primary" @click="saveRowEvent" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" > {{$t("common.common.save")}} </el-button> </el-col> <el-col :span="1" v-if="clickedTableRef"> <el-button class="title_btn ml20" type="default" @click="handleCancleStaus">{{$t("common.common.cancel")}}</el-button> </el-col> </el-row> <div class="tabel_container"> <!-- <HxlhTable <!-- <div class="box_container"> --> <el-row v-if="!clickedTableRefGas"> <el-col :span="24" style="text-align: right; margin-bottom: 10px"> <el-button class="title_btn" type="default" @click="editRowEventGas">{{ $t("common.common.edit") }}</el-button> </el-col> </el-row> <el-row v-if="clickedTableRefGas"> <el-col :span="24" style="text-align: right; margin-bottom: 10px"> <el-button class="title_btn" type="primary" @click="saveRowEvent1" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" > {{ $t("common.common.save") }} </el-button> <el-button class="title_btn ml20" type="default" @click="handleCancleStausGas" >{{ $t("common.common.cancel") }}</el-button > </el-col> </el-row> <!-- <div class="tabel_container"> --> <!-- <HxlhTable style="width: 100%" :columns="columns" :data="routePlanList" :data="gasPlanList" :loading="loading" :height="height" :editConfig="editConfig" > <template #edit_role="{ row }"> <vxe-select </HxlhTable> --> <vxe-table border ref="tableRef1" show-overflow size="small" :loading="loading2" :height="height" :column-config="{ resizable: true, useKey: true }" :data="gasPlanList" > <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="processName" :title="$t('plan.table.satndardProcessName')" fixed="left" > </vxe-column> <vxe-column field="orgCode" :width="locale === 'zh' ? '150px' : '200px'" :title="$t('plan.table.applicableFactories')" fixed="left" > <template #default="{ row }"> {{ formatTypeLabelPlant([row.orgCode]) }} </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceType" :title="$t('plan.table.dayProduceType')" > <!-- <template #edit="{ row }"> <el-select clearable v-model="row.dayProduceType" style="width: 140px" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> </div> <div v-else> <el-select clearable v-model="row.dayProduceType" :options="dayProduceTypeOptions" filterable ></vxe-select> </template> </HxlhTable> --> <vxe-table border ref="tableRef" show-overflow :loading="loading" :height="height" :column-config="{ resizable: true, useKey: true }" :data="routePlanList" size="small" > <vxe-column field="processName" :width="locale === 'zh' ? '150px' : '200px'" :title="$t('plan.table.satndardProcessName')" fixed="left"> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceType" :title="$t('plan.table.dayProduceType')" > <!-- <template #edit="{ row }"> <el-select clearable v-model="row.dayProduceType" style="width: 140px" style="width: 140px" @change="handlechangeDayproduceType($event, row)" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> </div> <div v-else> <el-select clearable v-model="row.dayProduceType" style="width: 140px" @change="handlechangeDayproduceType($event,row)" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceNum" :title="$t('plan.table.dayProduceNum')" > <!-- <template #edit="{ row }"> </el-option> </el-select> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceNum" :title="$t('plan.table.dayProduceNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceNum }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.dayProduceNum" size="mini" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceUnit" :title="$t('plan.table.dayProduceUnit')" > <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceNum }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.dayProduceNum" size="mini" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceUnit" :title="$t('plan.table.dayProduceUnit')" > <!-- <template #edit="{ row }"> <el-input v-model="row.dayProduceUnit" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceUnit }}</span> </div> <div v-else> <el-input v-model="row.dayProduceUnit" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="personnelNumber" :title="$t('plan.table.personnelNumber')" > <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceUnit }}</span> </div> <div v-else> <el-input v-model="row.dayProduceUnit" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="personnelNumber" :title="$t('plan.table.personnelNumber')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.personnelNumber" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.personnelNumber }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.personnelNumber" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceAllNum" :title="$t('plan.table.dayProduceAllNum')" > <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.personnelNumber }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.personnelNumber" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceAllNum" :title="$t('plan.table.dayProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.dayProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="days" :title="$t('plan.table.days')" > <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.dayProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="days" :title="$t('plan.table.days')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.days" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.days }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.days" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="monthProduceAllNum" :title="$t('plan.table.monthProduceAllNum')" > <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.days }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.days" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="monthProduceAllNum" :title="$t('plan.table.monthProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.monthProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.monthProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.monthProduceAllNum" disabled/> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="remark" :title="$t('plan.table.remark')" > <!-- :edit-render="{ autoFocus: 'input' }" --> <!-- <template #edit="{ row }"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.monthProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.monthProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="remark" :title="$t('plan.table.remark')" > <!-- <template #edit="{ row }"> <el-input type="text" v-model="row.remark" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.remark }}</span> </div> <div v-else> <el-input type="text" v-model="row.remark" /> </div> </template> </vxe-column> <!-- <vxe-column title="æä½" width="200" fixed="right"> <template #default="{ row }"> <template v-if="hasEditStatus(row)"> <el-button @click="saveRowEvent(row)" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" >ä¿å</el-button > <el-button @click="cancelRowEvent()">åæ¶</el-button> </template> <template v-else> <el-button @click="editRowEvent(row)">ç¼è¾</el-button> </template> </template> </vxe-column> --> </vxe-table> </div> </div> <div class="box_container"> <el-row> <el-col :span="!clickedTableRefGas?22:20"> <div class="title_text">{{$t("plan.title.gasPlanCapacity")}}</div> </el-col> <el-col :span="1" v-if="!clickedTableRefGas"> <el-button class="title_btn" type="default" @click="editRowEventGas" >{{$t("common.common.edit")}}</el-button> </el-col> <el-col :span="1.8" v-if="clickedTableRefGas"> <el-button class="title_btn" type="primary" @click="saveRowEvent1" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" > {{$t("common.common.save")}} </el-button> </el-col> <el-col :span="1" v-if="clickedTableRefGas"> <el-button class="title_btn ml20" type="default" @click="handleCancleStausGas">{{$t("common.common.cancel")}}</el-button> </el-col> </el-row> <div class="tabel_container"> <!-- <HxlhTable style="width: 100%" :columns="columns" :data="gasPlanList" :loading="loading" :height="height" > </HxlhTable> --> <vxe-table border ref="tableRef1" show-overflow size="small" :loading="loading2" :height="height" :column-config="{ resizable: true, useKey: true }" :data="gasPlanList" > <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="processName" :title="$t('plan.table.satndardProcessName')" fixed="left"> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceType" :title="$t('plan.table.dayProduceType')" > <!-- <template #edit="{ row }"> <el-select clearable v-model="row.dayProduceType" style="width: 140px" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> </div> <div v-else> <el-select clearable v-model="row.dayProduceType" style="width: 140px" @change="handlechangeDayproduceType($event,row)" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceNum" :title="$t('plan.table.dayProduceNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceNum }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.dayProduceNum" size="mini" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceUnit" :title="$t('plan.table.dayProduceUnit')" > <!-- <template #edit="{ row }"> <el-input v-model="row.dayProduceUnit" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceUnit }}</span> </div> <div v-else> <el-input v-model="row.dayProduceUnit" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="personnelNumber" :title="$t('plan.table.personnelNumber')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.personnelNumber" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.personnelNumber }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.personnelNumber" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceAllNum" :title="$t('plan.table.dayProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.dayProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.dayProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="days" :title="$t('plan.table.days')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.days" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.days }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event,row)" v-model="row.days" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="monthProduceAllNum" :title="$t('plan.table.monthProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.monthProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.monthProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.monthProduceAllNum" disabled/> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="remark" :title="$t('plan.table.remark')" > <!-- <template #edit="{ row }"> <el-input type="text" v-model="row.remark" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.remark }}</span> </div> <div v-else> <el-input type="text" v-model="row.remark" /> </div> </template> </vxe-column> <!-- <vxe-column title="æä½" width="200" fixed="right"> <template #default="{ row }"> <div v-if="!clickedTableRefGas"> <span>{{ row.remark }}</span> </div> <div v-else> <el-input type="text" v-model="row.remark" /> </div> </template> </vxe-column> <!-- <vxe-column title="æä½" width="200" fixed="right"> <template #default="{ row }"> <template v-if="hasEditStatus1(row)"> <el-button @@ -505,27 +307,28 @@ </template> </template> </vxe-column> --> </vxe-table> <!-- <div class="btn_center"> </vxe-table> <!-- <div class="btn_center"> <el-button type="primary" @click="handleSave2">ä¿å</el-button> </div> --> </div> </div> <!-- </div> --> <!-- </div> --> </div> </template> <script setup name="GasPlanning"> // import { ElMessage } from "element-plus"; import { listGasPlan, getGasPlanSave } from "@/api/mainPlan/gasPlanning"; const height = ref(document.documentElement.clientHeight - 400 + "px;"); import { useI18n } from "vue-i18n"; //è¦å¨jsä¸ä½¿ç¨å½é å const height = ref(document.documentElement.clientHeight - 230 + "px;"); const { t, locale } = useI18n(); const loading = ref(false); const { proxy } = getCurrentInstance(); const { aps_factory } = proxy.useDict("aps_factory"); const loading2 = ref(false); const clickedQuery = ref(false); const clickedQuery2 = ref(false); const data = reactive({ queryParams: { date: "", applicableFactory: "", }, }); const tableRef = ref(); @@ -552,150 +355,31 @@ } return ""; }; // è¡¨æ ¼é ç½® // const columns = ref([ // // { // // title: "è§å年份", // // field: "year", // // width: 150, // // }, // // { // // title: "è§åæä»½", // // field: "month", // // }, // // { // // title: "ä¸ä¸", // // field: "major", // // width: 100, // // }, // { // title: "æ åå·¥åºåç§°", // field: "processName", // width: 100, // }, // { // title: "æ¥äº§åºç±»å", // field: "dayProduceType", // width: 140, // editRender: {}, // slots: { edit: "edit_role", default: "default_role" }, // }, // { // title: "æ¥äº§åºæ°é", // field: "dayProduceNum", // width: 140, // // editRender: { autoFocus: "input" }, // // slots: { edit: "edit_name", default: "default_name" }, // }, // { // title: "æ¥äº§åºæ°éåä½", // field: "dayProduceUnit", // width: 140, // }, // { // title: "äººåæ°é", // field: "personnelNumber", // width: 140, // type: "html", // }, // { // title: "æ¥äº§åºæ»æ°é", // field: "dayProduceAllNum", // width: 140, // type: "html", // }, // { // title: "天æ°", // field: "days", // width: 120, // // format: 'YYYY-MM-DD' // }, // { // title: "æäº§åºæ»æ°é", // field: "monthProduceAllNum", // width: 140, // type: "html", // }, // { // title: "夿³¨", // field: "remark", // width: 140, // type: "html", // }, // ]); // const hasEditStatus = (row) => { // const $table = tableRef.value; // if ($table) { // return $table.isEditByRow(row); // } // }; const editRowEvent = () => { clickedTableRef.value = true; const formatTypeLabelPlant = (list) => { if (list) { return list .map((type) => { const item = aps_factory.value.find( (item) => item.value === type ); return item ? item.label : type; }) .join(""); } return ""; }; const editRowEventGas = () => { clickedTableRefGas.value = true; }; const saveRowEvent = (row) => { if (!queryParams.value.date) { ElMessage({ message: "è¯·éæ©å¹´æ", type: "error", }); return; } const $table = tableRef.value; if ($table) { $table.clearEdit().then(() => { loading.value = true // setTimeout(() => { // loading.value = false // VxeUI.modal.message({ content: `ä¿åæåï¼name=${row.name}`, status: 'success' }) // }, 300) handleSave("管路"); clickedTableRef.value = false; }); } }; const handleCancelAllStatus = ()=>{ handleCancleStaus(); handleCancleStausGas(); } const handleCancleStaus = () => { clickedTableRef.value = false; if(!clickedQuery.value){ return } const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getRouteList(year, month); }; const handleCancleStausGas = () => { clickedTableRefGas.value = false; if(!clickedQuery2.value){ return if (!clickedQuery2.value) { return; } const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getGasList(year, month); } // const cancelRowEvent = () => { // const $table = tableRef.value; // if ($table) { // $table.clearEdit(); // } // }; // const hasEditStatus1 = (row) => { // const $table = tableRef1.value; // if ($table) { // return $table.isEditByRow(row); // } // }; // const editRowEvent1 = (row) => { // const $table = tableRef1.value; // if ($table) { // $table.setEditRow(row); // } // }; }; const saveRowEvent1 = (row) => { if (!queryParams.value.date) { ElMessage({ @@ -723,50 +407,19 @@ // $table.clearEdit(); // } // }; async function getRouteList(year, month) { loading.value = true; const res = await listGasPlan({ major: "管路", year, month, }); routePlanList.value = res.rows; routePlanList.value = routePlanList.value.map((item, index) => { return { ...item, dayProduceType: item.dayProduceType == null ? "1" : item.dayProduceType, dayProduceNum: item.dayProduceNum == null ? "0" : item.dayProduceNum, dayProduceUnit: item.dayProduceUnit == null ? "å°æ¶" : item.dayProduceUnit, personnelNumber: item.personnelNumber == null ? "1" : item.personnelNumber, dayProduceAllNum: item.dayProduceAllNum == null ? "0" : item.dayProduceNum * item.personnelNumber, days: item.days == null ? "22" : item.days, monthProduceAllNum: item.monthProduceAllNum == null ? "0" : item.dayProduceAllNum * item.days, }; }); loading.value = false; } async function getGasList(year, month) { loading2.value = true; const res = await listGasPlan({ major: "æ°æ", year, month, orgCode: queryParams.value.applicableFactory, }); gasPlanList.value = res.rows; gasPlanList.value = gasPlanList.value.map((item, index) => { return { ...item, dayProduceType: item.dayProduceType == null ? "1" : item.dayProduceType, dayProduceType: item.dayProduceType == null ? "1" : item.dayProduceType, dayProduceNum: item.dayProduceNum == null ? "0" : item.dayProduceNum, dayProduceUnit: item.dayProduceUnit == null ? "å°æ¶" : item.dayProduceUnit, @@ -790,27 +443,26 @@ // if(row.dayProduceType==="1"){ // row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; // }else{ // row.dayProduceAllNum = row.dayProduceNum // } // row.monthProduceAllNum = row.dayProduceAllNum * row.days; // } function cellClickEvent(e, row) { if(row.dayProduceType==="1"){ if (row.dayProduceType === "1") { row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; }else{ row.dayProduceAllNum = row.dayProduceNum } else { row.dayProduceAllNum = row.dayProduceNum; } row.monthProduceAllNum = row.dayProduceAllNum * row.days; } function handlechangeDayproduceType(e,row){ function handlechangeDayproduceType(e, row) { row.dayProduceAllNum = "0"; row.monthProduceAllNum = "0"; if(e=="1"){ if (e == "1") { row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; }else if(e=="2"){ row.dayProduceAllNum = row.dayProduceNum } else if (e == "2") { row.dayProduceAllNum = row.dayProduceNum; } row.monthProduceAllNum = row.dayProduceAllNum * row.days; } @@ -824,14 +476,13 @@ } const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getRouteList(year, month); // getRouteList(year, month); getGasList(year, month); clickedQuery.value = true; clickedQuery2.value = true clickedQuery2.value = true; } function resetQuery() { queryParams.value.date = ""; clickedQuery.value = false; queryParams.value.applicableFactory = ""; clickedQuery2.value = false; gasPlanList.value = []; routePlanList.value = []; @@ -839,71 +490,27 @@ async function handleSave(major) { const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); if (major === "管路") { routePlanList.value = routePlanList.value.map((item) => { return { ...item, major: "管路", year, month, }; }); await getGasPlanSave([...routePlanList.value]); } else { if (major === "æ°æ") { gasPlanList.value = gasPlanList.value.map((item) => { return { ...item, major: "æ°æ", year, month, orgCode: queryParams.value.applicableFactory, }; }); await getGasPlanSave([...gasPlanList.value]); const res = await getGasPlanSave([...gasPlanList.value]); if (res.code == 200) { ElMessage({ message: "æ°æ®ä¿åæå", type: "success", }); loading2.value = false; handleQuery(); } } ElMessage({ message: "æ°æ®ä¿åæå", type: "success", }); loading.value = false; loading2.value = false; handleQuery(); } // async function handleSave2(row) { // const year = queryParams.value.date.split("-")[0]; // const month = parseInt(queryParams.value.date.split("-")[1]); // console.log(row, "baocun"); // // gasPlanList.value = gasPlanList.value.map((item) => { // // return { // // ...item, // // major: "æ°ä½", // // year, // // month, // // }; // // }); // // routePlanList.value = routePlanList.value.map((item) => { // // return { // // ...item, // // major: "管路", // // year, // // month, // // }; // // }); // const res = await getGasPlanSave([ // { // ...row, // major: "æ°æ", // year, // month, // }, // ]); // ElMessage({ // message: "æ°æ®ä¿åæå", // type: "success", // }); // handleQuery(); // console.log(res, "akiwjciwj"); // } </script> <style lang="scss" scoped> .column-with-margin { @@ -921,8 +528,8 @@ } .title_btn { margin-top: 20px; &.ml20{ margin-left:20px; &.ml20 { margin-left: 20px; } } .tabel_container { src/views/mainPlan/gasProduceStatics/index.vue
@@ -10,11 +10,12 @@ > <el-row :gutter="20"> <el-col :span="8"> <el-form-item :label="$t('plan.query.statistical')" :style="{ width: '100%' }"> <el-form-item :label="$t('plan.query.statistical')" > <el-select v-model="queryParams.searchType" placeholder="Select" @change="handleChangeSelectType" :style="{ width: '270px' }" > <el-option v-for="item in options" @@ -26,9 +27,10 @@ </el-form-item> </el-col> <el-col :span="8"> <el-form-item :label="$t('plan.query.selectDateRange')" :style="{ width: '100%' }"> <el-form-item :label="!dayCom?$t('plan.query.selectDateRange'):$t('plan.query.selectDateMonth')"> <div v-if="!dayCom"> <el-date-picker :style="{ width: '240px' }" v-model="queryParams.monthRange" type="monthrange" :range-separator="$t('plan.placeholder.to')" @@ -38,6 +40,7 @@ </div> <div v-else> <el-date-picker :style="{ width: '200px' }" v-model="queryParams.monthDays" type="month" :placeholder="$t('plan.placeholder.selectMonth')" @@ -45,7 +48,27 @@ </div> </el-form-item> </el-col> <el-col :span="8" style="text-align:right;"> <el-col :span="8" v-if="!dayCom"> <el-form-item :label="$t('basic.table.applicableFactories')" prop="plant" > <el-select :style="{ width: '300px' }" clearable v-model="queryParams.applicableFactory" :placeholder="$t('basic.table.applicableFactories')" > <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="8" style="text-align:right;"> <el-form-item class="column-with-margin"> <el-button type="primary" icon="Search" @click="handleQuery">{{ $t("common.common.query") @@ -54,7 +77,7 @@ $t("common.common.reset") }}</el-button> </el-form-item> </el-col> </el-col> --> </el-row> </el-form> <el-row :gutter="10" class="mb8"> @@ -80,7 +103,7 @@ >{{ $t("common.common.update") }}</el-button > </el-col> <right-toolbar @queryTable="handleQuery" :search="false"></right-toolbar> <right-toolbar @queryTable="handleQuery"></right-toolbar> </el-row> <vxe-grid ref="gridRef" v-bind="gridOptions" :loading="loading"></vxe-grid> </div> @@ -97,12 +120,12 @@ import { useI18n } from "vue-i18n"; //è¦å¨jsä¸ä½¿ç¨å½é å const { t, locale } = useI18n(); const { proxy } = getCurrentInstance(); const { aps_factory } = proxy.useDict("aps_factory"); const loading = ref(false); const gridRef = ref(); const height = ref(document.documentElement.clientHeight - 180 + "px;"); const headers = ref([]); const exportData = ref([]); // const exportData = ref([]); const showSearch = ref(true); const data = reactive({ queryParams: { @@ -139,7 +162,7 @@ const dayCom = ref(false); let tableColumn = []; let tableData = []; let merges = []; // let merges = []; watch( locale, (newLocale) => { @@ -196,11 +219,24 @@ eYearMonth: `${eYear}-${eMonth.toString().padStart(2, "0")}`, }; } const formatTypeLabelPlant = (list) => { if (list) { return list .map((type) => { const item = aps_factory.value.find( (item) => item.value === type ); return item ? item.label : type; }) .join(""); } return ""; }; function getGasList() { let rowKey = 0; let colKey = 0; headers.value = []; exportData.value = []; // exportData.value = []; tableColumn = []; tableData = []; loading.value = true; @@ -222,8 +258,10 @@ loading.value = false; return; } headersOne.push(t("plan.table.dateYearMonth")); headersTwo.push(t("plan.table.processName")); // headersOne.push("");//t("plan.table.dateYearMonth") // headersOne.push(""); // headersTwo.push(t("plan.table.processName")); // headersTwo.push(t("plan.table.applicableFactories")); colList.push({ field: "dateCol", title: t("plan.table.dateYearMonth"), @@ -235,16 +273,22 @@ width: 250, type: "html", }, { field: `resourceGroupName`, title: t("plan.table.applicableFactories"), width: 250, type: "html", }, ], width: 160, }); response.data.planTitle.forEach((item) => { headersOne.push(item); headersOne.push(""); headersOne.push(""); headersTwo.push(t("plan.table.designWorkingHours")); headersTwo.push(t("plan.table.requiredWorkingHours")); headersTwo.push(t("plan.table.capacityLoad")); // headersOne.push(item); // headersOne.push(""); // headersOne.push(""); // headersTwo.push(t("plan.table.designWorkingHours")); // headersTwo.push(t("plan.table.requiredWorkingHours")); // headersTwo.push(t("plan.table.capacityLoad")); colKey++; colList.push({ field: `dateColTime${colKey}`, @@ -271,25 +315,25 @@ }); }); headers.value.push(headersOne); headers.value.push(headersTwo); // headers.value.push(headersOne); // headers.value.push(headersTwo); const columnList = [...tableColumn, ...colList]; const dataList = []; let startCol = 1; // let startCol = 1; //è·åmap response.data.planTable.map((mapItem) => { rowKey++; let lastCol = startCol + 2; merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } }); startCol = lastCol + 1; // let lastCol = startCol + 2; // merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } }); // startCol = lastCol + 1; let data = []; const item = { id: `${rowKey}`, }; for (const [key, listValue] of Object.entries(mapItem)) { data.push(key); // data.push(key); let tableKey = 0; let flag = false; @@ -302,9 +346,9 @@ listItem.requireTimes, listItem.capacityLoad ); data.push(listItem.designTimes); data.push(listItem.requireTimes); data.push(listItem.capacityLoad + "%"); // data.push(listItem.designTimes); // data.push(listItem.requireTimes); // data.push(listItem.capacityLoad + "%"); // if (listItem.capacityLoad > 100) { // flag = true; // } @@ -313,9 +357,10 @@ // item[`resourceName`] = flag // ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>` // : key; item[`resourceName`] = key; item[`resourceName`] = key.split("_")[0]; item[`resourceGroupName`] = formatTypeLabelPlant([key.split("_")[1]]); } exportData.value.push(data); // exportData.value.push(data); dataList.push(item); }); src/views/mainPlan/pipePlanning/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,548 @@ <template> <div class="app-container"> <el-form class="responsive-form" :model="queryParams" ref="queryRef" :inline="true" label-position="left" > <el-row type="flex" justify="left"> <el-col :span="8"> <el-form-item :style="{ width: '100%' }" :label="$t('plan.query.selectMonth')" prop="description" > <el-date-picker clearable v-model="queryParams.date" type="month" value-format="YYYY-MM" :placeholder="$t('plan.query.selectMonth')" > </el-date-picker> </el-form-item> </el-col> <el-col :span="8"> <el-form-item :label="$t('basic.table.applicableFactories')" style="width: 100%" prop="plant"> <el-select clearable v-model="queryParams.applicableFactory" :placeholder="$t('basic.table.applicableFactories')" > <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="8" style="text-align: right"> <el-form-item class="column-with-margin"> <el-button type="primary" icon="Search" @click="handleQuery">{{ $t("common.common.query") }}</el-button> <el-button icon="Refresh" @click="resetQuery">{{ $t("common.common.reset") }}</el-button> </el-form-item> </el-col> </el-row> </el-form> <!-- <div class="box_container"> --> <el-row v-if="!clickedTableRef"> <!-- <el-col :span="!clickedTableRef?22:20"> <div class="title_text">{{$t('plan.title.pipePlanCapacity')}}</div> </el-col> --> <el-col :span="24" style="text-align: right; margin-bottom: 10px" > <el-button class="title_btn" type="default" @click="editRowEvent">{{ $t("common.common.edit") }}</el-button> </el-col> </el-row> <el-row v-if="clickedTableRef"> <el-col :span="24" style="text-align: right; margin-bottom: 10px" > <el-button class="title_btn" type="primary" @click="saveRowEvent" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" > {{ $t("common.common.save") }} </el-button> <el-button class="title_btn ml20" type="default" @click="handleCancleStaus" >{{ $t("common.common.cancel") }}</el-button > </el-col> </el-row> <vxe-table border ref="tableRef" show-overflow :loading="loading" :height="height" :column-config="{ resizable: true, useKey: true }" :data="routePlanList" size="small" > <vxe-column field="processName" :width="locale === 'zh' ? '150px' : '200px'" :title="$t('plan.table.satndardProcessName')" fixed="left" > </vxe-column> <vxe-column field="orgCode" :width="locale === 'zh' ? '150px' : '200px'" :title="$t('plan.table.applicableFactories')" fixed="left" > <template #default="{ row }"> {{ formatTypeLabelPlant([row.orgCode]) }} </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceType" :title="$t('plan.table.dayProduceType')" > <!-- <template #edit="{ row }"> <el-select clearable v-model="row.dayProduceType" style="width: 140px" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> </div> <div v-else> <el-select clearable v-model="row.dayProduceType" style="width: 140px" @change="handlechangeDayproduceType($event, row)" > <el-option v-for="type in dayProduceTypeOptions" :key="type.value" :label="type.label" :value="type.value" > </el-option> </el-select> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceNum" :title="$t('plan.table.dayProduceNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceNum }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.dayProduceNum" size="mini" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="dayProduceUnit" :title="$t('plan.table.dayProduceUnit')" > <!-- <template #edit="{ row }"> <el-input v-model="row.dayProduceUnit" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceUnit }}</span> </div> <div v-else> <el-input v-model="row.dayProduceUnit" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="personnelNumber" :title="$t('plan.table.personnelNumber')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.personnelNumber" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.personnelNumber }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.personnelNumber" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="dayProduceAllNum" :title="$t('plan.table.dayProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.dayProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.dayProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.dayProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="days" :title="$t('plan.table.days')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.days" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.days }}</span> </div> <div v-else> <el-input-number @change="cellClickEvent($event, row)" v-model="row.days" /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '180px' : '200px'" field="monthProduceAllNum" :title="$t('plan.table.monthProduceAllNum')" > <!-- <template #edit="{ row }"> <el-input-number v-model="row.monthProduceAllNum" disabled /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.monthProduceAllNum }}</span> </div> <div v-else> <el-input-number v-model="row.monthProduceAllNum" disabled /> </div> </template> </vxe-column> <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="remark" :title="$t('plan.table.remark')" > <!-- :edit-render="{ autoFocus: 'input' }" --> <!-- <template #edit="{ row }"> <el-input type="text" v-model="row.remark" /> </template> --> <template #default="{ row }"> <div v-if="!clickedTableRef"> <span>{{ row.remark }}</span> </div> <div v-else> <el-input type="text" v-model="row.remark" /> </div> </template> </vxe-column> <!-- <vxe-column title="æä½" width="200" fixed="right"> <template #default="{ row }"> <template v-if="hasEditStatus(row)"> <el-button @click="saveRowEvent(row)" v-hasPermi="['aps:gasPipelineCapacityPlan:add']" >ä¿å</el-button > <el-button @click="cancelRowEvent()">åæ¶</el-button> </template> <template v-else> <el-button @click="editRowEvent(row)">ç¼è¾</el-button> </template> </template> </vxe-column> --> </vxe-table> <!-- </div> --> <!-- </div> --> </div> </template> <script setup name="GasPlanning"> // import { ElMessage } from "element-plus"; import { listGasPlan, getGasPlanSave } from "@/api/mainPlan/gasPlanning"; const height = ref(document.documentElement.clientHeight - 230 + "px;"); import { useI18n } from "vue-i18n"; //è¦å¨jsä¸ä½¿ç¨å½é å const { t, locale } = useI18n(); const { proxy } = getCurrentInstance(); const { aps_factory } = proxy.useDict("aps_factory"); const loading = ref(false); const clickedQuery = ref(false); const clickedQuery2 = ref(false); const data = reactive({ queryParams: { date: "", applicableFactory:"" }, }); const tableRef = ref(); const tableRef1 = ref(); const { queryParams } = toRefs(data); const gasPlanList = ref([]); const routePlanList = ref([]); const dayProduceTypeOptions = ref([ { label: "å人æ¥äº§åº", value: "1" }, { label: "åºå®æ¥äº§åº", value: "2" }, ]); const clickedTableRef = ref(false); const clickedTableRefGas = ref(false); const formatTypeLabel = (list) => { if (list) { return list .map((type) => { const item = dayProduceTypeOptions.value.find( (item) => item.value === type ); return item ? item.label : type; }) .join(""); } return ""; }; const formatTypeLabelPlant = (list) => { if (list) { return list .map((type) => { const item = aps_factory.value.find( (item) => item.value === type ); return item ? item.label : type; }) .join(""); } return ""; }; const editRowEvent = () => { clickedTableRef.value = true; }; const saveRowEvent = (row) => { if (!queryParams.value.date) { ElMessage({ message: "è¯·éæ©å¹´æ", type: "error", }); return; } const $table = tableRef.value; if ($table) { $table.clearEdit().then(() => { loading.value = true; // setTimeout(() => { // loading.value = false // VxeUI.modal.message({ content: `ä¿åæåï¼name=${row.name}`, status: 'success' }) // }, 300) handleSave("管路"); clickedTableRef.value = false; }); } }; // const handleCancelAllStatus = () => { // handleCancleStaus(); // handleCancleStausGas(); // }; const handleCancleStaus = () => { clickedTableRef.value = false; if (!clickedQuery.value) { return; } const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getRouteList(year, month); }; // const handleCancleStausGas = () => { // clickedTableRefGas.value = false; // if (!clickedQuery2.value) { // return; // } // const year = queryParams.value.date.split("-")[0]; // const month = parseInt(queryParams.value.date.split("-")[1]); // getGasList(year, month); // }; async function getRouteList(year, month) { loading.value = true; const res = await listGasPlan({ major: "管路", year, month, orgCode:queryParams.value.applicableFactory }); routePlanList.value = res.rows; routePlanList.value = routePlanList.value.map((item, index) => { return { ...item, dayProduceType: item.dayProduceType == null ? "1" : item.dayProduceType, dayProduceNum: item.dayProduceNum == null ? "0" : item.dayProduceNum, dayProduceUnit: item.dayProduceUnit == null ? "å°æ¶" : item.dayProduceUnit, personnelNumber: item.personnelNumber == null ? "1" : item.personnelNumber, dayProduceAllNum: item.dayProduceAllNum == null ? "0" : item.dayProduceNum * item.personnelNumber, days: item.days == null ? "22" : item.days, monthProduceAllNum: item.monthProduceAllNum == null ? "0" : item.dayProduceAllNum * item.days, }; }); loading.value = false; } // function cellClickEvent({ row, column }) { // console.log(row,column,"cellClickEvent") // if(row.dayProduceType==="1"){ // row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; // }else{ // row.dayProduceAllNum = row.dayProduceNum // } // row.monthProduceAllNum = row.dayProduceAllNum * row.days; // } function cellClickEvent(e, row) { if (row.dayProduceType === "1") { row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; } else { row.dayProduceAllNum = row.dayProduceNum; } row.monthProduceAllNum = row.dayProduceAllNum * row.days; } function handlechangeDayproduceType(e, row) { row.dayProduceAllNum = "0"; row.monthProduceAllNum = "0"; if (e == "1") { row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; } else if (e == "2") { row.dayProduceAllNum = row.dayProduceNum; } row.monthProduceAllNum = row.dayProduceAllNum * row.days; } function handleQuery() { if (!queryParams.value.date) { ElMessage({ message: "è¯·éæ©å¹´æ", type: "error", }); return; } const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getRouteList(year, month); // getGasList(year, month); clickedQuery.value = true; // clickedQuery2.value = true; } function resetQuery() { queryParams.value.date = ""; queryParams.value.applicableFactory = ""; clickedQuery.value = false; // clickedQuery2.value = false; gasPlanList.value = []; routePlanList.value = []; } async function handleSave(major) { const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); if (major === "管路") { routePlanList.value = routePlanList.value.map((item) => { return { ...item, major: "管路", year, month, orgCode: queryParams.value.applicableFactory, }; }); const res = await getGasPlanSave([...routePlanList.value]); if(res.code == 200){ ElMessage({ message: "æ°æ®ä¿åæå", type: "success", }); loading.value = false; handleQuery(); } } } </script> <style lang="scss" scoped> .column-with-margin { margin-right: 0px; } .box_container { width: 100%; margin: 20px auto; background: #fff; border-radius: 5px; box-shadow: 1px 1px 1px 4px#f1f1f1; .title_text { padding-top: 20px; margin-left: 20px; } .title_btn { margin-top: 20px; &.ml20 { margin-left: 20px; } } .tabel_container { width: 98%; margin: 20px auto; } } .btn_center { display: flex; justify-content: center; align-items: center; margin-top: 20px; padding-bottom: 20px; } </style> src/views/mainPlan/pipeProduceStatics/index.vue
@@ -101,7 +101,7 @@ import { useI18n } from "vue-i18n"; //è¦å¨jsä¸ä½¿ç¨å½é å const { t, locale } = useI18n(); const { proxy } = getCurrentInstance(); const { aps_factory } = proxy.useDict("aps_factory"); const loading = ref(false); const gridRef = ref(); const height = ref(document.documentElement.clientHeight - 180 + "px;"); @@ -200,6 +200,19 @@ eYearMonth: `${eYear}-${eMonth.toString().padStart(2, "0")}`, }; } const formatTypeLabelPlant = (list) => { if (list) { return list .map((type) => { const item = aps_factory.value.find( (item) => item.value === type ); return item ? item.label : type; }) .join(""); } return ""; }; /** æ¥è¯¢é¶ä»¶ç»è®¡è¡¨å表 */ function getPipeList() { let rowKey = 0; @@ -220,15 +233,15 @@ major: "piping", }).then((response) => { const colList = []; let headersOne = []; let headersTwo = []; // let headersOne = []; // let headersTwo = []; if (response.code == "200") { if (!response.data.planTitle) { loading.value = false; return; } headersOne.push(t("plan.table.dateYearMonth")); headersTwo.push(t("plan.table.processName")); // headersOne.push(t("plan.table.dateYearMonth")); // headersTwo.push(t("plan.table.processName")); colList.push({ field: "dateCol", title: t("plan.table.dateYearMonth"), @@ -240,16 +253,16 @@ width: 250, type: "html", }, { field: `resourceGroupName`, title: t("plan.table.applicableFactories"), width: 250, type: "html", }, ], width: 160, }); response.data.planTitle.forEach((item) => { headersOne.push(item); headersOne.push(""); headersOne.push(""); headersTwo.push(t("plan.table.designWorkingHours")); headersTwo.push(t("plan.table.requiredWorkingHours")); headersTwo.push(t("plan.table.capacityLoad")); colKey++; colList.push({ field: `dateColTime${colKey}`, @@ -275,27 +288,16 @@ width: 160, }); }); headers.value.push(headersOne); headers.value.push(headersTwo); const columnList = [...tableColumn, ...colList]; const dataList = []; let startCol = 1; //è·åmap response.data.planTable.map((mapItem) => { rowKey++; let lastCol = startCol + 2; merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } }); startCol = lastCol + 1; let data = []; const item = { id: `${rowKey}`, }; for (const [key, listValue] of Object.entries(mapItem)) { data.push(key); let tableKey = 0; let flag = false; listValue.forEach((listItem) => { @@ -307,24 +309,14 @@ listItem.requireTimes, listItem.capacityLoad ); // 0-100 绿è²ï¼101-120é»è²ï¼å¤§äº120çº¢è² // listItem.capacityLoad <= 100 // ? `<font color="red">${listItem.capacityLoad}%</font>` // : listItem.capacityLoad + "%"; data.push(listItem.designTimes); data.push(listItem.requireTimes); data.push(listItem.capacityLoad + "%"); // if (listItem.capacityLoad > 100) { // flag = true; // } }); // item[`resourceName`] = flag // ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>` // : key; item[`resourceName`] = key; item[`resourceName`] = key.split("_")[0]; item[`resourceGroupName`] = formatTypeLabelPlant([key.split("_")[1]]); } exportData.value.push(data); dataList.push(item); }); src/views/system/dict/index.vue
@@ -122,6 +122,17 @@ >æ´æ°æäº§åºå</el-button > </el-col> <el-col :span="1.5"> <el-button type="success" plain icon="Refresh" :disabled="loadingRefresh" @click="handleRefreshData" v-hasPermi="['system:dict:remove']" >å·æ°ç¼åBOMãå·¥èºè·¯çº¿ãåºåæ°æ®</el-button > </el-col> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" @@ -259,13 +270,14 @@ refreshCache, refreshApsArea } from "@/api/system/dict/type"; import { refreshBomRouteStorageDataList } from "@/api/basicData/bom/bom.js" const { proxy } = getCurrentInstance(); const { sys_normal_disable } = proxy.useDict("sys_normal_disable"); const typeList = ref([]); const open = ref(false); const loading = ref(true); const loadingRefresh = ref(false); const showSearch = ref(true); const ids = ref([]); const single = ref(true); @@ -426,5 +438,18 @@ }); handleQuery(); } function handleRefreshData() { loadingRefresh.value = true; refreshBomRouteStorageDataList().then(res=>{ if(res.code==200){ proxy.$modal.msgSuccess("æ´æ°æå"); loadingRefresh.value = false; }else{ loadingRefresh.value = false; } }).catch(()=>{ loadingRefresh.value = false; }) } getList(); </script>