New file |
| | |
| | | <template> |
| | | <div class="process-info"> |
| | | <div class="item-l-bng"> |
| | | <img src="~@/assets/images/process-model.png" /> |
| | | </div> |
| | | <div class="item-r" @click="onDetailClick"> |
| | | <div class="item-r-t font_weight">{{ craftModel.number }}</div> |
| | | <div class="item-r-b">产品: {{ craftModel.product }}</div> |
| | | <div class="item-r-b">工艺: {{ craftModel.procedure }}</div> |
| | | </div> |
| | | <div v-if="craftModel.isUpdate" class="tip-r"> |
| | | <img src="~@/assets/images/process-tip.png" /> |
| | | </div> |
| | | <div v-if="craftModel.number == task?.Procedure?.processModelNumber" class="tip-current">当前使用</div> |
| | | <div class="btn"> |
| | | <el-button |
| | | type="primary" |
| | | :loading="loading" |
| | | :disabled="craftModel.isUpdate ? false : true" |
| | | @click="onUpdateClick" |
| | | > |
| | | <!-- <el-icon v-if="loading" color="#fff" :size="16" class="refresh-top-icon"> |
| | | <Loading /> |
| | | </el-icon> --> |
| | | 更新工艺 |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import { toRefs, ref, watch } from 'vue' |
| | | import { Loading } from '@element-plus/icons-vue' |
| | | import type { CraftModel } from '@/api/craftModel' |
| | | import type { Task } from '@/api/task' |
| | | const props = defineProps<{ |
| | | craftModel: CraftModel |
| | | activeArr: string[] |
| | | task?: Task |
| | | }>() |
| | | const { craftModel, task, activeArr } = toRefs(props) |
| | | |
| | | const emit = defineEmits<{ |
| | | update: [craftModel: CraftModel] |
| | | detail: [craftModel: CraftModel] |
| | | }>() |
| | | const loading = ref(false) |
| | | watch(activeArr.value, () => { |
| | | // 弹窗显示时获取工艺参数 |
| | | if (activeArr.value) { |
| | | getLoading() |
| | | } |
| | | }) |
| | | function getLoading() { |
| | | for (let i in activeArr.value) { |
| | | if (activeArr.value[i] == craftModel.value.number) { |
| | | loading.value = true |
| | | return true |
| | | } |
| | | } |
| | | loading.value = false |
| | | } |
| | | function onDetailClick() { |
| | | emit('detail', craftModel.value) |
| | | } |
| | | function onUpdateClick() { |
| | | if (loading.value) { |
| | | return true |
| | | } |
| | | emit('update', craftModel.value) |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $status-running: #f76c0f; |
| | | $status-done: #2c5dbb82; |
| | | $status-ready: #00ff00f0; |
| | | $status-disabled: #7b95d3; |
| | | .font_weight { |
| | | font-weight: 600; |
| | | } |
| | | .process-info { |
| | | width: calc(50% - 10px); |
| | | height: 140px; |
| | | padding: 23px 5px 10px 10px; |
| | | background: $status-done; |
| | | border-radius: 8px; |
| | | //float: left; |
| | | overflow: hidden; |
| | | font-size: 15px; |
| | | position: relative; |
| | | margin-bottom: 30px; |
| | | |
| | | &:nth-of-type(odd) { |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .item-l-bng { |
| | | width: 40px; |
| | | float: left; |
| | | margin-right: 20px; |
| | | |
| | | img { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .refresh-top-icon { |
| | | display: flex; |
| | | align-items: center; |
| | | color: #fff; |
| | | } |
| | | |
| | | .item-r { |
| | | width: calc(100% - 60px); |
| | | float: left; |
| | | line-height: 25px; |
| | | color: #fff; |
| | | font-size: 16px; |
| | | cursor: pointer; |
| | | |
| | | .item-r-t { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .item-r-b { |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | .tip-r { |
| | | position: absolute; |
| | | top: 5px; |
| | | right: 15px; |
| | | width: 20px; |
| | | |
| | | img { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .tip-current { |
| | | background: $status-ready; |
| | | color: #fff; |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 70px; |
| | | width: auto; |
| | | padding: 2px 15px; |
| | | font-size: 12px; |
| | | border-radius: 0px 0px 6px 6px; |
| | | } |
| | | |
| | | .btn { |
| | | width: 95px; |
| | | position: absolute; |
| | | right: 15px; |
| | | bottom: 10px; |
| | | .el-button--primary { |
| | | background: $status-running; |
| | | border: 0 !important; |
| | | } |
| | | .el-button.is-disabled, |
| | | .el-button.is-disabled:focus, |
| | | .el-button.is-disabled:hover { |
| | | color: #fff !important; |
| | | background: $status-disabled; |
| | | } |
| | | } |
| | | } |
| | | </style> |