|
|
@ -8,54 +8,54 @@ |
|
|
label-width="80px"> |
|
|
label-width="80px"> |
|
|
<!-- 第一行信息 --> |
|
|
<!-- 第一行信息 --> |
|
|
<el-form style="margin-top: -10px;"> |
|
|
<el-form style="margin-top: -10px;"> |
|
|
<el-form-item label="订单号:" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.orderNo class="customer-item"> |
|
|
<el-input v-model="scheduleData.orderNo" :readonly="true" style="width: 130px;"></el-input> |
|
|
<el-input v-model="scheduleData.orderNo" :readonly="true" style="width: 130px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="物料编码:" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.partNo class="customer-item"> |
|
|
<el-input v-model="scheduleData.partNo" :readonly="true" style="width: 130px;"></el-input> |
|
|
<el-input v-model="scheduleData.partNo" :readonly="true" style="width: 130px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="物料名称/规则:" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.partDesc class="customer-item"> |
|
|
<el-input v-model="scheduleData.partDesc" :readonly="true" style="width: 200px;"></el-input> |
|
|
<el-input v-model="scheduleData.partDesc" :readonly="true" style="width: 200px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="派工单号:" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.seqNo class="customer-item"> |
|
|
<el-input v-model="scheduleData.seqNo" :readonly="true" style="width: 80px;"></el-input> |
|
|
<el-input v-model="scheduleData.seqNo" :readonly="true" style="width: 80px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<!-- 第二行信息 --> |
|
|
<!-- 第二行信息 --> |
|
|
<el-form> |
|
|
<el-form> |
|
|
<el-form-item label="要求完工日期" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.needDate class="customer-item"> |
|
|
<el-input v-model="scheduleData.planFinishTime" :readonly="true" style="width: 130px;"></el-input> |
|
|
<el-input v-model="scheduleData.planFinishTime" :readonly="true" style="width: 130px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="要求开工日期" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.planStartDate class="customer-item"> |
|
|
<el-input v-model="scheduleData.planStartTime" :readonly="true" style="width: 130px;"></el-input> |
|
|
<el-input v-model="scheduleData.planStartTime" :readonly="true" style="width: 130px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="原始派工单需求数量" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.lotSize class="customer-item"> |
|
|
<el-input v-model="scheduleData.qtyRequiredOriginal" :readonly="true" style="width: 80px;"></el-input> |
|
|
<el-input v-model="scheduleData.qtyRequiredOriginal" :readonly="true" style="width: 80px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="排产日期" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.scheduledDate class="customer-item"> |
|
|
<el-input v-model="scheduleData.scheduledDate" :readonly="true" style="width: 80px;"></el-input> |
|
|
<el-input v-model="scheduleData.scheduledDate" :readonly="true" style="width: 80px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="班次" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.shiftNo class="customer-item"> |
|
|
<el-input v-model="scheduleData.shiftNo" :readonly="true" style="width: 80px;"></el-input> |
|
|
<el-input v-model="scheduleData.shiftNo" :readonly="true" style="width: 80px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<!-- 第三行信息 --> |
|
|
<!-- 第三行信息 --> |
|
|
<el-form> |
|
|
<el-form> |
|
|
<el-form-item label="前道工序" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.preItemNo class="customer-item"> |
|
|
<el-input v-model="scheduleData.preItemDesc" :readonly="true" style="width: 180px;"></el-input> |
|
|
<el-input v-model="scheduleData.preItemDesc" :readonly="true" style="width: 180px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="后道工序" prop="languageDefault" class="customer-item"> |
|
|
|
|
|
|
|
|
<el-form-item :label=labels.nextItemNo prop="languageDefault" class="customer-item"> |
|
|
<el-input v-model="scheduleData.nextItemDesc" :readonly="true" style="width: 180px;"></el-input> |
|
|
<el-input v-model="scheduleData.nextItemDesc" :readonly="true" style="width: 180px;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item :label="''" style="margin-left: -5px;" class="customer-item"> |
|
|
<el-form-item :label="''" style="margin-left: -5px;" class="customer-item"> |
|
|
<el-checkbox style="margin-left: 30px; margin-top: 28px;" true-label="true" false-label="false" |
|
|
<el-checkbox style="margin-left: 30px; margin-top: 28px;" true-label="true" false-label="false" |
|
|
v-model="scheduleData.currentRollFlag">仅显示当前卷信息 |
|
|
|
|
|
|
|
|
v-model="scheduleData.currentRollFlag">{{labels.onlyCurrentRoll}} |
|
|
</el-checkbox> |
|
|
</el-checkbox> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<!-- 第四行菜单- 卷操作 --> |
|
|
<!-- 第四行菜单- 卷操作 --> |
|
|
<fieldset class="customer-fieldset" style="width: 330px; height: 60px"> |
|
|
<fieldset class="customer-fieldset" style="width: 330px; height: 60px"> |
|
|
<legend class="customer-legend">卷操作</legend> |
|
|
|
|
|
|
|
|
<legend class="customer-legend">{{labels.rollButtons}}</legend> |
|
|
<el-form style="margin-top: 5px"> |
|
|
<el-form style="margin-top: 5px"> |
|
|
<el-form-item class="customer-roll-css" style="width: 130px; font-size: 16px; color: #387877;"> |
|
|
<el-form-item class="customer-roll-css" style="width: 130px; font-size: 16px; color: #387877;"> |
|
|
<span>{{ this.currentRollOps.rollNo }}</span> |
|
|
<span>{{ this.currentRollOps.rollNo }}</span> |
|
|
@ -64,14 +64,14 @@ |
|
|
<el-button class="customer-bun-mid" type="primary" @click="switchRollModal" |
|
|
<el-button class="customer-bun-mid" type="primary" @click="switchRollModal" |
|
|
:disabled="buttonTags.scannerRollFlag" |
|
|
:disabled="buttonTags.scannerRollFlag" |
|
|
style="margin-left: 5px; margin-bottom: 5px;"> |
|
|
style="margin-left: 5px; margin-bottom: 5px;"> |
|
|
扫描卷 |
|
|
|
|
|
|
|
|
{{ buttons.scanRoll }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="finishRollModal" |
|
|
<el-button class="customer-bun-mid" type="primary" @click="finishRollModal" |
|
|
:disabled="buttonTags.finishRollFlag" |
|
|
:disabled="buttonTags.finishRollFlag" |
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
结束卷 |
|
|
|
|
|
|
|
|
{{ buttons.finishRoll }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
@ -79,15 +79,15 @@ |
|
|
</fieldset> |
|
|
</fieldset> |
|
|
<!-- 第四行菜单- fqc成品卷奥做 --> |
|
|
<!-- 第四行菜单- fqc成品卷奥做 --> |
|
|
<fieldset class="customer-fieldset" style="width: 330px; margin-top: -60px;margin-left: 340px;height: 60px"> |
|
|
<fieldset class="customer-fieldset" style="width: 330px; margin-top: -60px;margin-left: 340px;height: 60px"> |
|
|
<legend class="customer-legend">FQC成品卷操作</legend> |
|
|
|
|
|
|
|
|
<legend class="customer-legend">{{labels.fqcSfdcOperation}}</legend> |
|
|
<el-form> |
|
|
<el-form> |
|
|
<el-form-item style="margin-top: -10px ;"> |
|
|
<el-form-item style="margin-top: -10px ;"> |
|
|
<span slot="label" type="label">每卷数量</span> |
|
|
|
|
|
|
|
|
<span slot="label" type="label">{{labels.perRollQty}}</span> |
|
|
<el-input style="width: 80px" oninput="value=value.replace(/[^0-9]/g,'')" v-model="createRoll.rollQty"> |
|
|
<el-input style="width: 80px" oninput="value=value.replace(/[^0-9]/g,'')" v-model="createRoll.rollQty"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: -10px ;"> |
|
|
<el-form-item style="margin-top: -10px ;"> |
|
|
<span slot="label" type="label">卷数</span> |
|
|
|
|
|
|
|
|
<span slot="label" type="label">{{labels.rollNums}}</span> |
|
|
<el-input class="customer-bun-mid" oninput="value=value.replace(/[^0-9]/g,'')" |
|
|
<el-input class="customer-bun-mid" oninput="value=value.replace(/[^0-9]/g,'')" |
|
|
v-model="createRoll.rollNums"> |
|
|
v-model="createRoll.rollNums"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
@ -95,16 +95,15 @@ |
|
|
<el-form-item style="margin-top: -12px ;"> |
|
|
<el-form-item style="margin-top: -12px ;"> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="separateRollModal" |
|
|
<el-button class="customer-bun-mid" type="primary" @click="separateRollModal" |
|
|
:disabled="buttonTags.createNewRollFlag" |
|
|
|
|
|
> |
|
|
|
|
|
创建分卷 |
|
|
|
|
|
|
|
|
:disabled="buttonTags.createNewRollFlag"> |
|
|
|
|
|
{{buttons.separateRoll}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: -12px ;"> |
|
|
<el-form-item style="margin-top: -12px ;"> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.mergeRollFlag" |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.mergeRollFlag" |
|
|
@click="mergeRollModal" style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
@click="mergeRollModal" style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
合并卷 |
|
|
|
|
|
|
|
|
{{buttons.mergeRoll}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
@ -112,10 +111,10 @@ |
|
|
</fieldset> |
|
|
</fieldset> |
|
|
<!-- 列表展示区域 --> |
|
|
<!-- 列表展示区域 --> |
|
|
<fieldset class="customer-fieldset" style="margin-bottom: 10px; width: 870px; height: 300px;"> |
|
|
<fieldset class="customer-fieldset" style="margin-bottom: 10px; width: 870px; height: 300px;"> |
|
|
<legend class="customer-legend">列表信息</legend> |
|
|
|
|
|
|
|
|
<legend class="customer-legend">{{labels.listDesc}}</legend> |
|
|
<el-tabs v-model="activeTable" style="margin-top: -3px; width: 870px;" |
|
|
<el-tabs v-model="activeTable" style="margin-top: -3px; width: 870px;" |
|
|
type="border-card" @tab-click="tabClick" class="customer-tab"> |
|
|
type="border-card" @tab-click="tabClick" class="customer-tab"> |
|
|
<el-tab-pane label="材料" name="sfdc_material"> |
|
|
|
|
|
|
|
|
<el-tab-pane :label=labels.materialList name="sfdc_material"> |
|
|
<el-table |
|
|
<el-table |
|
|
height="120" |
|
|
height="120" |
|
|
:data="orderBomList" |
|
|
:data="orderBomList" |
|
|
@ -166,24 +165,24 @@ |
|
|
header-align="center" |
|
|
header-align="center" |
|
|
align="center" |
|
|
align="center" |
|
|
width="115" |
|
|
width="115" |
|
|
:label="'操作'"> |
|
|
|
|
|
|
|
|
:label=labels.materialListOperation> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.rollNo != '*' && scope.row.sAPBOMItemNo >= 0 |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.rollNo != '*' && scope.row.sAPBOMItemNo >= 0 |
|
|
&& scope.row.finishedFlag == 'N' && scope.row.histType == '发料'" |
|
|
&& scope.row.finishedFlag == 'N' && scope.row.histType == '发料'" |
|
|
@click="replaceMaterialModal(scope.row)">换料</a> |
|
|
|
|
|
|
|
|
@click="replaceMaterialModal(scope.row)">{{labels.materialListReplace}}</a> |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.rollNo == '*' && scope.row.sAPBOMItemNo >= 0 |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.rollNo == '*' && scope.row.sAPBOMItemNo >= 0 |
|
|
&& scope.row.finishedFlag == 'N' && scope.row.histType == '发料'" |
|
|
&& scope.row.finishedFlag == 'N' && scope.row.histType == '发料'" |
|
|
@click="cuttingMaterialModal(scope.row)" |
|
|
@click="cuttingMaterialModal(scope.row)" |
|
|
>下料</a> |
|
|
|
|
|
|
|
|
>{{labels.materialListCutting}}</a> |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.finishedFlag == 'N' && scope.row.sAPBOMItemNo >= 0 |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.finishedFlag == 'N' && scope.row.sAPBOMItemNo >= 0 |
|
|
&& scope.row.histType == '发料' && scope.row.keyRMFlag == 'N'" |
|
|
&& scope.row.histType == '发料' && scope.row.keyRMFlag == 'N'" |
|
|
@click="warnFinishMaterialWithNoRemainderConfirm(scope.row)" |
|
|
@click="warnFinishMaterialWithNoRemainderConfirm(scope.row)" |
|
|
>生产结束</a> |
|
|
|
|
|
|
|
|
>{{labels.materialListFinish}}</a> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<el-tab-pane label="生产卷的操作信息" name="sfdc_rollOps"> |
|
|
|
|
|
|
|
|
<el-tab-pane :label=labels.rollopsList name="sfdc_rollOps"> |
|
|
<el-table |
|
|
<el-table |
|
|
height="250" |
|
|
height="250" |
|
|
:data="sfdcRollOpsList" |
|
|
:data="sfdcRollOpsList" |
|
|
@ -208,27 +207,27 @@ |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<el-tab-pane label="不良记录" name="sfdc_defect"> |
|
|
|
|
|
|
|
|
<el-tab-pane :label=labels.defectList name="sfdc_defect"> |
|
|
<el-form> |
|
|
<el-form> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<span slot="label" type="label">报告日期</span> |
|
|
|
|
|
|
|
|
<span slot="label" type="label">{{labels.reportDate}}</span> |
|
|
<el-date-picker style="width: 100px" |
|
|
<el-date-picker style="width: 100px" |
|
|
format="yyyy-MM-dd" |
|
|
format="yyyy-MM-dd" |
|
|
value-format="yyyy-MM-dd hh:mm:ss" v-model="harmful.reportedDate"> |
|
|
value-format="yyyy-MM-dd hh:mm:ss" v-model="harmful.reportedDate"> |
|
|
</el-date-picker> |
|
|
</el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<a slot="label" type="label" @click="getBaseList(89)">不良代码</a> |
|
|
|
|
|
|
|
|
<a slot="label" type="label" @click="getBaseList(89)">{{labels.defectCode}}</a> |
|
|
<el-input style="width: 90px" v-model="harmful.defectCode"> |
|
|
<el-input style="width: 90px" v-model="harmful.defectCode"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<span slot="label" type="label">不良原因</span> |
|
|
|
|
|
|
|
|
<span slot="label" type="label">{{labels.defectDesc}}</span> |
|
|
<el-input style="width: 150px" v-model="harmful.defectDesc" readonly> |
|
|
<el-input style="width: 150px" v-model="harmful.defectDesc" readonly> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<span slot="label" type="label">不良数</span> |
|
|
|
|
|
|
|
|
<span slot="label" type="label">{{labels.defectQty}}</span> |
|
|
<el-input style="width: 120px" v-model="harmful.defectQty" |
|
|
<el-input style="width: 120px" v-model="harmful.defectQty" |
|
|
oninput="value=value.replace(/[^0-9]/g,'')"> |
|
|
oninput="value=value.replace(/[^0-9]/g,'')"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
@ -236,14 +235,14 @@ |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px" @click="getBaseList(89)"> </span> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px" @click="getBaseList(89)"> </span> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="saveHarmful"> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="saveHarmful"> |
|
|
保存 |
|
|
|
|
|
|
|
|
{{buttons.saveButton}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<el-form-item style="margin-top: 0px ;"> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<span slot="label" type="label" style="margin-top: -10px ;margin-left: 10px"> </span> |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.mergeRollFlag" |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.mergeRollFlag" |
|
|
@click="getInspectionDefectCodeList" style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
@click="getInspectionDefectCodeList" style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
批量录入 |
|
|
|
|
|
|
|
|
{{buttons.batchSaveButton}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
@ -274,7 +273,7 @@ |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<el-tab-pane label="机器下机卷" name="sfdc_roll"> |
|
|
|
|
|
|
|
|
<el-tab-pane :label=labels.rollList name="sfdc_roll"> |
|
|
<el-table |
|
|
<el-table |
|
|
height="250" |
|
|
height="250" |
|
|
:data="sfdcRollList" |
|
|
:data="sfdcRollList" |
|
|
@ -304,14 +303,14 @@ |
|
|
header-align="center" |
|
|
header-align="center" |
|
|
align="center" |
|
|
align="center" |
|
|
width="115" |
|
|
width="115" |
|
|
:label="'操作'"> |
|
|
|
|
|
|
|
|
:label=labels.rollListOperation> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.finishedFlag != 'N'" |
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.finishedFlag != 'N'" |
|
|
@click="warnReopenSfdcRollsConfirm(scope.row)" |
|
|
@click="warnReopenSfdcRollsConfirm(scope.row)" |
|
|
>重打开</a> |
|
|
|
|
|
|
|
|
>{{ labels.rollListReopen }}</a> |
|
|
<a class="customer-a" v-if="operatorData.operatorName != ''" |
|
|
<a class="customer-a" v-if="operatorData.operatorName != ''" |
|
|
@click="warnDeleteSfdcRollsConfirm(scope.row)" |
|
|
@click="warnDeleteSfdcRollsConfirm(scope.row)" |
|
|
>删除卷</a> |
|
|
|
|
|
|
|
|
>{{labels.rollListDelete}}</a> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
@ -321,25 +320,28 @@ |
|
|
<!-- 生产调机菜单 --> |
|
|
<!-- 生产调机菜单 --> |
|
|
<fieldset class="customer-fieldset" |
|
|
<fieldset class="customer-fieldset" |
|
|
style="margin-left: 680px; margin-top: -510px; width: 200px; height: 200px;"> |
|
|
style="margin-left: 680px; margin-top: -510px; width: 200px; height: 200px;"> |
|
|
<legend class="customer-legend">生产调机</legend> |
|
|
|
|
|
|
|
|
<legend class="customer-legend">{{labels.produceTuning}}</legend> |
|
|
<el-form> |
|
|
<el-form> |
|
|
<el-form-item style="margin-left: 10px; margin-top: 20px"> |
|
|
<el-form-item style="margin-left: 10px; margin-top: 20px"> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="refreshPageData" |
|
|
<el-button class="customer-bun-mid" type="primary" @click="refreshPageData" |
|
|
style="width: 80px; "> |
|
|
style="width: 80px; "> |
|
|
刷新 |
|
|
|
|
|
|
|
|
{{buttons.refreshButton}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-left: 100px; margin-top: -20px"> |
|
|
<el-form-item style="margin-left: 100px; margin-top: -20px"> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="switchOperatorModal" style="width: 80px;"> |
|
|
<el-button class="customer-bun-mid" type="primary" @click="switchOperatorModal" style="width: 80px;"> |
|
|
切换用户 |
|
|
|
|
|
|
|
|
{{buttons.switchOperator}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-left: 100px; margin-top: -20px"> |
|
|
<el-form-item style="margin-left: 100px; margin-top: -20px"> |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.finishScheduleFlag" |
|
|
<el-button class="customer-bun-mid" type="primary" :disabled="buttonTags.finishScheduleFlag" |
|
|
@click="showFinishScheduleModal" style="width: 80px; margin-left: -90px;margin-top: 15px;"> |
|
|
@click="showFinishScheduleModal" style="width: 80px; margin-left: -90px;margin-top: 15px;"> |
|
|
结单 |
|
|
|
|
|
|
|
|
{{buttons.finishSchedule}} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item style="margin-left: 100px; margin-top: -20px"> |
|
|
|
|
|
<el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">对语言设置</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
</el-form> |
|
|
</el-form> |
|
|
</fieldset> |
|
|
</fieldset> |
|
|
@ -510,12 +512,29 @@ import comFinishSchedule from "../com_finish_schedule";/*结束派工单组件*/ |
|
|
import defectList from "./defectList";/*结束派工单组件*/ |
|
|
import defectList from "./defectList";/*结束派工单组件*/ |
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
import notOverFinishRoll from "../not_over_finish_roll";/*结束派工单组件*/ |
|
|
import notOverFinishRoll from "../not_over_finish_roll";/*结束派工单组件*/ |
|
|
import comFinishPartRoll from "../com_finish_part_roll" |
|
|
|
|
|
|
|
|
import comFinishPartRoll from "../com_finish_part_roll"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { |
|
|
|
|
|
searchSysLanguagePackList, |
|
|
|
|
|
searchSysLanguageParam, |
|
|
|
|
|
searchFunctionButtonList, |
|
|
|
|
|
saveButtonList, |
|
|
|
|
|
searchSysLanguage, |
|
|
|
|
|
searchLanguageListByLanguageCode, |
|
|
|
|
|
saveSysLanguageOne, |
|
|
|
|
|
searchPageLanguageData, |
|
|
|
|
|
removerLanguage, |
|
|
|
|
|
saveSysLanguageList |
|
|
|
|
|
} from "@/api/sysLanguage.js"; |
|
|
|
|
|
|
|
|
|
|
|
var functionId = 'C10000024'; |
|
|
/*生产过程的停机组件*/ |
|
|
/*生产过程的停机组件*/ |
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
titleCon: '', |
|
|
titleCon: '', |
|
|
|
|
|
showDefault: false, |
|
|
popoverFlag: false, |
|
|
popoverFlag: false, |
|
|
showNotOverFlag:false, |
|
|
showNotOverFlag:false, |
|
|
showOperatorFlag: false, |
|
|
showOperatorFlag: false, |
|
|
@ -2790,7 +2809,337 @@ export default { |
|
|
defectCode: '', |
|
|
defectCode: '', |
|
|
defectQty: '', |
|
|
defectQty: '', |
|
|
defectDesc: '' |
|
|
defectDesc: '' |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
buttons: { |
|
|
|
|
|
scanRoll: '扫描卷', |
|
|
|
|
|
finishRoll: '结束卷', |
|
|
|
|
|
separateRoll: '创建分卷', |
|
|
|
|
|
mergeRoll: '合并卷', |
|
|
|
|
|
refreshButton: '刷新', |
|
|
|
|
|
switchOperator: '切换用户', |
|
|
|
|
|
finishSchedule: '结单', |
|
|
|
|
|
saveButton: '保存', |
|
|
|
|
|
batchSaveButton: '批量插入', |
|
|
|
|
|
}, |
|
|
|
|
|
buttonList: [ |
|
|
|
|
|
{ |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '扫描卷', |
|
|
|
|
|
objectId: 'scanRoll', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '结束卷', |
|
|
|
|
|
objectId: 'finishRoll', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '创建分卷', |
|
|
|
|
|
objectId: 'separateRoll', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '合并卷', |
|
|
|
|
|
objectId: 'mergeRoll', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '刷新', |
|
|
|
|
|
objectId: 'refreshButton', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '切换用户', |
|
|
|
|
|
objectId: 'switchOperator', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '结单', |
|
|
|
|
|
objectId: 'finishSchedule', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '保存', |
|
|
|
|
|
objectId: 'saveButton', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '批量插入', |
|
|
|
|
|
objectId: 'batchSaveButton', |
|
|
|
|
|
objectType: 'button', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
labels: { |
|
|
|
|
|
titleCon: '机台工作台', |
|
|
|
|
|
orderNo: '订单号', |
|
|
|
|
|
partNo: '物料编码', |
|
|
|
|
|
partDesc: '物料名称/规则', |
|
|
|
|
|
seqNo: '派工单号', |
|
|
|
|
|
needDate: '要求完工日期', |
|
|
|
|
|
planStartDate: '要求开工日期', |
|
|
|
|
|
lotSize: '原始派工单需求数量', |
|
|
|
|
|
scheduledDate: ' 排产日期', |
|
|
|
|
|
shiftNo: '班次', |
|
|
|
|
|
preItemNo: '前道工序', |
|
|
|
|
|
nextItemNo: ' 后道工序', |
|
|
|
|
|
onlyCurrentRoll: '仅显示当前卷信息', |
|
|
|
|
|
rollButtons: '卷操作', |
|
|
|
|
|
fqcSfdcOperation: 'FQC成品卷操作', |
|
|
|
|
|
perRollQty: '每卷数量', |
|
|
|
|
|
rollNums: '卷数', |
|
|
|
|
|
produceTuning: '生产调机', |
|
|
|
|
|
listDesc: '列表信息', |
|
|
|
|
|
materialList: '材料', |
|
|
|
|
|
timeList: '时间', |
|
|
|
|
|
rollopsList: '生产卷操作信息', |
|
|
|
|
|
defectList: '不良记录', |
|
|
|
|
|
rollList: '机器下机卷', |
|
|
|
|
|
reportDate: '报告日期', |
|
|
|
|
|
defectCode: '不良代码', |
|
|
|
|
|
defectDesc: '不良原因', |
|
|
|
|
|
defectQty: '不良数', |
|
|
|
|
|
rollListOperation: '操作', |
|
|
|
|
|
rollListReopen: '重打开', |
|
|
|
|
|
rollListDelete: '删除卷', |
|
|
|
|
|
materialListOperation: '操作', |
|
|
|
|
|
materialListReplace: '换料', |
|
|
|
|
|
materialListCutting: '下料', |
|
|
|
|
|
materialListFinish: '结束生产', |
|
|
|
|
|
}, |
|
|
|
|
|
labelsList: [ |
|
|
|
|
|
{ |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '机台工作台', |
|
|
|
|
|
objectId: 'titleCon', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '订单号', |
|
|
|
|
|
objectId: 'orderNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '物料编码', |
|
|
|
|
|
objectId: 'partNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '物料名称/规则', |
|
|
|
|
|
objectId: 'partDesc', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '派工单号', |
|
|
|
|
|
objectId: 'seqNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '要求完工日期', |
|
|
|
|
|
objectId: 'needDate', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '要求开工日期', |
|
|
|
|
|
objectId: 'planStartDate', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '原始派工单需求数量', |
|
|
|
|
|
objectId: 'lotSize', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '排产日期', |
|
|
|
|
|
objectId: 'scheduledDate', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '班次', |
|
|
|
|
|
objectId: 'shiftNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '前道工序', |
|
|
|
|
|
objectId: 'preItemNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
},{ |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '后道工序', |
|
|
|
|
|
objectId: 'nextItemNo', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '仅显示当前卷信息', |
|
|
|
|
|
objectId: 'onlyCurrentRoll', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
},{ |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '卷操作', |
|
|
|
|
|
objectId: 'rollButtons', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: 'FQC成品卷操作', |
|
|
|
|
|
objectId: 'fqcSfdcOperation', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '每卷数量', |
|
|
|
|
|
objectId: 'perRollQty', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '卷数', |
|
|
|
|
|
objectId: 'rollNums', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '生产调机', |
|
|
|
|
|
objectId: 'produceTuning', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '列表信息', |
|
|
|
|
|
objectId: 'listDesc', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '材料', |
|
|
|
|
|
objectId: 'materialList', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '时间', |
|
|
|
|
|
objectId: 'timeList', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '生产卷操作信息', |
|
|
|
|
|
objectId: 'rollopsList', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '不良记录', |
|
|
|
|
|
objectId: 'defectList', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '机器下机卷', |
|
|
|
|
|
objectId: 'rollList', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '报告日期', |
|
|
|
|
|
objectId: 'reportDate', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '不良代码', |
|
|
|
|
|
objectId: 'defectCode', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '不良原因', |
|
|
|
|
|
objectId: 'defectDesc', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '不良数量', |
|
|
|
|
|
objectId: 'defectQty', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '操作', |
|
|
|
|
|
objectId: 'rollListOperation', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '重打开', |
|
|
|
|
|
objectId: 'rollListReopen', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '删除卷', |
|
|
|
|
|
objectId: 'rollListDelete', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '操作', |
|
|
|
|
|
objectId: 'materialListOperation', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '换料', |
|
|
|
|
|
objectId: 'materialListReplace', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '下料', |
|
|
|
|
|
objectId: 'materialListCutting', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
languageValue: '结束生产', |
|
|
|
|
|
objectId: 'materialListFinish', |
|
|
|
|
|
objectType: 'label', |
|
|
|
|
|
tableId: '*' |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
queryButton: { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
table_id: '*', |
|
|
|
|
|
languageCode: this.$i18n.locale, |
|
|
|
|
|
objectType: 'button' |
|
|
|
|
|
}, |
|
|
|
|
|
queryLabel: { |
|
|
|
|
|
functionId: functionId, |
|
|
|
|
|
table_id: '*', |
|
|
|
|
|
languageCode: this.$i18n.locale, |
|
|
|
|
|
objectType: 'label' |
|
|
|
|
|
}, |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
watch: { |
|
|
watch: { |
|
|
@ -3656,12 +4005,45 @@ export default { |
|
|
}, |
|
|
}, |
|
|
closeDialog(){ |
|
|
closeDialog(){ |
|
|
Object.assign(this.$data, this.$options.data.call(this)); |
|
|
Object.assign(this.$data, this.$options.data.call(this)); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 保存 默认配置 列 |
|
|
|
|
|
async saveMultiLanguage() { |
|
|
|
|
|
// 保存页面 button label title 属性 |
|
|
|
|
|
let buttons = this.buttonList; |
|
|
|
|
|
let labels = this.labelsList; |
|
|
|
|
|
await saveButtonList(buttons) |
|
|
|
|
|
await saveButtonList(labels) |
|
|
|
|
|
this.getMultiLanguageList() |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getMultiLanguageList() { |
|
|
|
|
|
//首先查询当前按钮的多语言 |
|
|
|
|
|
searchFunctionButtonList(this.queryButton).then(({data}) => { |
|
|
|
|
|
if (JSON.stringify(data.data) != '{}') { |
|
|
|
|
|
this.buttons = data.data |
|
|
|
|
|
} else { |
|
|
|
|
|
// saveButtonList(this.buttonList).then(({data}) => { |
|
|
|
|
|
// }) |
|
|
} |
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
//其次查询当前标签的多语言 |
|
|
|
|
|
searchFunctionButtonList(this.queryLabel).then(({data}) => { |
|
|
|
|
|
if (JSON.stringify(data.data) != '{}') { |
|
|
|
|
|
this.labels = data.data |
|
|
|
|
|
} else { |
|
|
|
|
|
// saveButtonList(this.buttonList).then(({data}) => { |
|
|
|
|
|
// }) |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
created() { |
|
|
created() { |
|
|
// this.factoryList() |
|
|
// this.factoryList() |
|
|
// this.getLanguageList() |
|
|
// this.getLanguageList() |
|
|
|
|
|
this.getMultiLanguageList();//刷新多语言的信息 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|