Commit 4b50705c by huangqy

11

parent 00d6f25f
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -13,13 +13,14 @@ ...@@ -13,13 +13,14 @@
"core-js": "^3.6.5", "core-js": "^3.6.5",
"echarts": "^4.9.0", "echarts": "^4.9.0",
"element-ui": "^2.15.6", "element-ui": "^2.15.6",
"lodash": "^4.17.21",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"lodash": "^4.17.21",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"ol": "^7.1.0", "ol": "^7.1.0",
"script-loader": "^0.7.2", "script-loader": "^0.7.2",
"swiper": "^6.3.5", "swiper": "^6.3.5",
"timetables": "^1.1.0", "timetables": "^1.1.0",
"video.js": "^8.10.0",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-awesome-swiper": "^3.1.3", "vue-awesome-swiper": "^3.1.3",
"vue-router": "^3.2.0", "vue-router": "^3.2.0",
......
...@@ -242,9 +242,9 @@ i { ...@@ -242,9 +242,9 @@ i {
margin: 10px 0; margin: 10px 0;
} }
.el-divider--horizontal { /* .el-divider--horizontal {
margin: 5px 0 !important; margin: 5px 0 !important;
} } */
/* 分割线设置 */ /* 分割线设置 */
.el-divider .el-divider__text { .el-divider .el-divider__text {
font-size: 16px; font-size: 16px;
......
<template>
<el-dialog :append-to-body="true" title="上传" :visible.sync="addFlag" width="400px" @close="addClose()" :close-on-click-modal="false">
<!-- 上传区域 -->
<el-upload class="upload-demo" drag ref="upload" :action="actionUrl" :on-success="uploadSuccess" :auto-upload="false" :data="{req: JSON.stringify(formData)}" :multiple="false">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件,其类型文件会上传失败</div>
</el-upload>
<el-divider style="margin-top: 20px">补充信息</el-divider>
<el-form :model="formData" ref="fromRef" size="medium">
<el-form-item label="专业名称 :">
<el-select clearable filterable placeholder="请选择专业名称" v-model="formData.majorCode" style="width: 100%" @change="changeMajor">
<el-option v-for="item in majorList" :key="item.id" :label="item.majorName" :value="item.majorCode"></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属系别 :">
<el-select clearable filterable placeholder="请选择所属系别" v-model="formData.collegeId" style="width: 100%" @change="changeCollege">
<el-option v-for="item in collegeList" :key="item.id" :label="item.collegeName" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
<!-- 按钮区域 -->
<span slot="footer" class="dialog-footer">
<el-button @click="addFlag = false">取 消</el-button>
<el-button type="primary" @click="addClick()">确 定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
formData: {},
upData: {},
majorList: [],
collegeList: [],
addFlag: false,
// 文件上传地址
actionUrl: window._CONFIG['domianURL'] + '/course/readExcel',
}
},
methods: {
show() {
this.initCollege()
this.initMajor()
this.addFlag = true
},
async initMajor() {
const { data: res } = await this.$axios.post('/major/getPage', {pageNo:1, pageSize: 999})
if (res.code !== 99200) return this.$message(res.message)
this.majorList = res.data.records
},
async initCollege() {
const { data: res } = await this.$axios.post('/college/getPage', {pageNo:1, pageSize: 999})
if (res.code !== 99200) return this.$message(res.message)
this.collegeList = res.data.records
},
changeMajor() {
this.formData.majorName = this.majorList.find(i => i.majorCode == this.formData.majorCode).majorName
},
changeCollege() {
this.formData.collegeName = this.collegeList.find(i => i.id == this.formData.collegeId).collegeName
},
uploadSuccess (response, file, fileList) {
if (response.code !== 99200) {
this.$message.error(`文件: ${file.name}出错 错误信息: ${response.message} 请检查文件是否为json类型,或已上传`)
} else {
this.$refs.upload.clearFiles()
this.$message.success(response.message)
}
},
addClose() {
this.formData = {}
this.$refs.upload.clearFiles()
this.$emit('ok')
},
async addClick () {
this.$refs.upload.submit()
this.addFlag = false
},
}
}
</script>
<style>
.el-divider--vertical {
margin: 0px !important;
}
</style>
\ No newline at end of file
...@@ -4,25 +4,27 @@ ...@@ -4,25 +4,27 @@
<el-card :style="'height:' + (height - 60) + 'px;overflow-y: auto;position:relative;'"> <el-card :style="'height:' + (height - 60) + 'px;overflow-y: auto;position:relative;'">
<div class="course-week"> <div class="course-week">
<div class="week-top"> <div class="week-top">
<div class="btn_wrap"> <div class="btn_wrap" style="margin-left: 50px;">
<el-tooltip class="item" effect="dark" content="上周" placement="top"> <el-tooltip class="item" effect="dark" content="上周" placement="top">
<span @click="getLastWeek"><i class="el-icon-d-arrow-left"></i>上周</span> <a-button type="primary" ghost @click="getLastWeek"><i class="el-icon-d-arrow-left"></i>上周</a-button>
</el-tooltip> </el-tooltip>
<span @click="getCurWeek">本周</span> <a-button type="primary" ghost @click="getCurWeek" style="margin-left: 10px;">本周</a-button>
<el-tooltip class="item" effect="dark" content="下周" placement="top"> <el-tooltip class="item" effect="dark" content="下周" placement="top">
<span @click="getNextWeek">下周<i class="el-icon-d-arrow-right"></i></span> <a-button type="primary" ghost @click="getNextWeek" style="margin-left: 10px;">下周<i class="el-icon-d-arrow-right"></i></a-button>
</el-tooltip> </el-tooltip>
<span @click="yjpk">一键排课 </span> <a-button @click="yjpk" type="primary" ghost style="margin-left: 10px;">一键排课 </a-button>
</div> </div>
<span class="todayDate"> {{ todayDate }}</span> <span class="todayDate"> {{ todayDate }}</span>
<div class="chooseMonth"> <div class="chooseMonth">
<a-button type="primary" icon="upload" ghost @click="upload" style="margin-top: 5px;">导入</a-button>
<span style="margin-left: 10px;line-height: 35px;font-size: 16px;">班级选择:</span>
<el-select <el-select
filterable filterable
size="mini"
placeholder="请选择班级编号" placeholder="请选择班级编号"
v-model="searchData.classCode" v-model="searchData.classCode"
@change="initData" @change="initData"
style="margin-bottom: 10px;width: 240px;"
> >
<el-option v-for="item in classList" :key="item.id" :label="item.className +'(' + item.classCode +')'" :value="item.classCode"></el-option> <el-option v-for="item in classList" :key="item.id" :label="item.className +'(' + item.classCode +')'" :value="item.classCode"></el-option>
</el-select> </el-select>
...@@ -71,6 +73,7 @@ ...@@ -71,6 +73,7 @@
> >
<span>时段:{{ thing.startTime + '-' + thing.endTime }}</span> <span>时段:{{ thing.startTime + '-' + thing.endTime }}</span>
<span>课程:{{ thing.courseName }}</span> <span>课程:{{ thing.courseName }}</span>
<span>主讲教员: {{ thing.speaker }}</span>
</div> </div>
<button type="button" aria-label="Close" v-if="thing.classTime===month.date" @click="closeClass(thing.id)" <button type="button" aria-label="Close" v-if="thing.classTime===month.date" @click="closeClass(thing.id)"
style="margin-top: -75px;margin-right: -10px;padding: 0;background: 0 0;border: none;outline: 0;cursor: pointer;font-size: 1px;color: #000;"><i class="el-dialog__close el-icon el-icon-close"></i></button> style="margin-top: -75px;margin-right: -10px;padding: 0;background: 0 0;border: none;outline: 0;cursor: pointer;font-size: 1px;color: #000;"><i class="el-dialog__close el-icon el-icon-close"></i></button>
...@@ -218,6 +221,7 @@ ...@@ -218,6 +221,7 @@
</el-card> </el-card>
<upload ref="up" @ok="initClass"></upload>
</div> </div>
</div> </div>
</template> </template>
...@@ -226,8 +230,10 @@ ...@@ -226,8 +230,10 @@
<script> <script>
import MyTools from '../../utils/MyTools' import MyTools from '../../utils/MyTools'
import upload from './modules/upload.vue'
export default { export default {
name: "courseWeek", name: "courseWeek",
components: {upload},
data() { data() {
return { return {
formData: {}, formData: {},
...@@ -307,6 +313,9 @@ export default { ...@@ -307,6 +313,9 @@ export default {
this.initClass() this.initClass()
}, },
methods: { methods: {
upload() {
this.$refs.up.show()
},
/** /**
* 获取 时间 * 获取 时间
* @param time * @param time
...@@ -554,7 +563,7 @@ $borderCoder: #EAEDF2; ...@@ -554,7 +563,7 @@ $borderCoder: #EAEDF2;
.chooseMonth { .chooseMonth {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
width: 11.8%; width: 24.8%;
div { div {
flex: 1; flex: 1;
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
<div class="body" :style="'height:' + height + 'px'"> <div class="body" :style="'height:' + height + 'px'">
<div style="border: 2px solid #43A747;"> <div style="border: 2px solid #43A747;">
<!-- 主体区域 - 卡片视图 --> <!-- 主体区域 - 卡片视图 -->
<el-card :style="'height:' + (height - 60) + 'px;overflow-y: auto;position:relative; text-align: center'"> <el-card :style="'height:' + (height - 60) + 'px;overflow-y: scroll; text-align: center'">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-0.5 -0.5 1678 2174" style="background-color: rgb(255, 255, 255);">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="32%" viewBox="-0.5 -0.5 1678 2174" style="background-color: rgb(255, 255, 255);">
<defs/> <defs/>
<g> <g>
<rect x="243" y="1962" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect x="243" y="1962" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/>
...@@ -1640,22 +1639,23 @@ ...@@ -1640,22 +1639,23 @@
<path d="M 1232 2152 M 1253 2152 M 1253 2172 M 1232 2172" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/> <path d="M 1232 2152 M 1253 2152 M 1253 2172 M 1232 2172" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/>
<rect x="1185.72" y="2092" width="44.55" height="80" fill="#cccccc" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="none"/> <rect x="1185.72" y="2092" width="44.55" height="80" fill="#cccccc" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="none"/>
<rect :class="move ? 'inStartClass': moveC ? 'outStartClass' : ''" x="448" y="2012" width="80" height="70" fill="#cccccc" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="none"/> <rect :class="move ? 'inStartClass': moveC ? 'outStartClass' : ''" x="448" y="2012" width="80" height="70" fill="#cccccc" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="none"/>
<rect :class="move ? 'inStartClass': moveC ? 'outStartClass' : ''" x="468" y="2026" width="41.5" height="41" :fill="showGoods ? '#3333ff' : '#cccccc'" stroke="none" pointer-events="none"/> <rect :class="move ? 'inStartClass': moveC ? 'outStartClass' : ''" x="468" y="2026" width="41.5" height="41" :fill="(index >= 0 && index < 35) || (index >= 80 && index < 90) ? '#3333ff' : '#cccccc'" stroke="none" pointer-events="none" v-if="workTypeName == '入库'"/>
<rect :class="move ? 'inStartClass': moveC ? 'outStartClass' : ''" x="468" y="2026" width="41.5" height="41"
:fill="(index1 > 70 && index1 < 110) || (index1 > 172 && index1<200) ? '#3333ff' : '#cccccc'" stroke="none" pointer-events="none" v-if="workTypeName == '出库'"/>
<!-- 1号黄色 --> <!-- 1号黄色 -->
<rect :class="move1 ? 'topOut1': ''" x="122" y="1863" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="move1 ? 'topOut1': ''" x="122" y="1863" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<rect :class="move1 ? 'topOut1': ''" x="133" y="1842" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="move1 ? 'topOut1': ''" x="133" y="1842" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<rect :class="move1 ? 'topOut1': ''" x="133" y="1982" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="move1 ? 'topOut1': ''" x="133" y="1982" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<path :class="move1 ? 'topOut1': ''" d="M 133 1887 L 193 1887" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="move1 ? 'topOut1': ''" d="M 133 1887 L 193 1887" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<path :class="move1 ? 'topOut1': ''" d="M 133 1957 L 193 1957" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="move1 ? 'topOut1': ''" d="M 133 1957 L 193 1957" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<rect :class="move1 ? 'topOut1': ''" x="142.25" y="1901.5" width="41.5" height="41" :fill="goodsLan? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/> <rect :class="move1 ? 'topOut1': ''" x="142.25" y="1901.5" width="41.5" height="41" :fill="(index1 >=50 && index1< 70) ? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/>
<!-- 2号黄色 --> <!-- 2号黄色 -->
<rect :class="moveZ ? 'topClass1': ''" x="457" y="1863" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="moveZ ? 'topClass1': ''" x="457" y="1863" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<rect :class="moveZ ? 'topClass1': ''" x="467.5" y="1842" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="moveZ ? 'topClass1': ''" x="467.5" y="1842" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<rect :class="moveZ ? 'topClass1': ''" x="467.5" y="1982" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="moveZ ? 'topClass1': ''" x="467.5" y="1982" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<path :class="moveZ ? 'topClass1': ''" d="M 467.5 1887 L 527.5 1887" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="moveZ ? 'topClass1': ''" d="M 467.5 1887 L 527.5 1887" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<path :class="moveZ ? 'topClass1': ''" d="M 467.5 1957 L 527.5 1957" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="moveZ ? 'topClass1': ''" d="M 467.5 1957 L 527.5 1957" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<rect :class="lanMoveZ ? 'lanMoveZ': ''" x="476.75" y="1901.5" width="41.5" height="41" :fill="moveZ? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/> <rect :class="lanMoveZ ? 'lanMoveZ': ''" x="476.75" y="1901.5" width="41.5" height="41" :fill="index >= 90 ? '#3333ff' :'#ffb570'" stroke="none" pointer-events="none"/>
<!-- 3号黄色 --> <!-- 3号黄色 -->
<rect :class="move3 ? 'topOut3': ''" x="793" y="1864" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="move3 ? 'topOut3': ''" x="793" y="1864" width="80" height="118" fill="#ffb570" stroke="rgb(0, 0, 0)" pointer-events="none"/>
...@@ -1663,7 +1663,7 @@ ...@@ -1663,7 +1663,7 @@
<rect :class="move3 ? 'topOut3': ''" x="802.5" y="1983" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="move3 ? 'topOut3': ''" x="802.5" y="1983" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<path :class="move3 ? 'topOut3': ''" d="M 802.5 1888 L 862.5 1888" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="move3 ? 'topOut3': ''" d="M 802.5 1888 L 862.5 1888" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<path :class="move3 ? 'topOut3': ''" d="M 802.5 1958 L 862.5 1958" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="move3 ? 'topOut3': ''" d="M 802.5 1958 L 862.5 1958" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<rect :class="move3 ? 'topOut3': ''" x="811.75" y="1902.5" width="41.5" height="41" :fill="goodsLan3? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/> <rect :class="move3 ? 'topOut3': ''" x="811.75" y="1902.5" width="41.5" height="41" :fill="(index1 >=150 && index1< 172) ? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/>
<rect x="1105.5" y="1883" width="120" height="80" fill="#ffb570" stroke="rgb(0, 0, 0)" transform="rotate(90,1165.5,1923)" pointer-events="none"/> <rect x="1105.5" y="1883" width="120" height="80" fill="#ffb570" stroke="rgb(0, 0, 0)" transform="rotate(90,1165.5,1923)" pointer-events="none"/>
...@@ -1680,7 +1680,7 @@ ...@@ -1680,7 +1680,7 @@
<rect :class="moveY ? 'topClass': ''" x="1467.5" y="1983" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/> <rect :class="moveY ? 'topClass': ''" x="1467.5" y="1983" width="60" height="20" fill="#cccccc" stroke="rgb(0, 0, 0)" pointer-events="none"/>
<path :class="moveY ? 'topClass': ''" d="M 1467.5 1888 L 1527.5 1888" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="moveY ? 'topClass': ''" d="M 1467.5 1888 L 1527.5 1888" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<path :class="moveY ? 'topClass': ''" d="M 1467.5 1958 L 1527.5 1958" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/> <path :class="moveY ? 'topClass': ''" d="M 1467.5 1958 L 1527.5 1958" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="none"/>
<rect :class="lanMoveY ? 'lanMoveY': ''" x="1476.75" y="1902.5" width="41.5" height="41" :fill="moveY? '#3333ff' : '#ffb570'" stroke="none" pointer-events="none"/> <rect :class="lanMoveY ? 'lanMoveY': ''" x="1476.75" y="1902.5" width="41.5" height="41" :fill="index >= 35 ? '#3333ff' :'#ffb570'" stroke="none" pointer-events="none"/>
</g> </g>
<switch> <switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
...@@ -1688,34 +1688,56 @@ ...@@ -1688,34 +1688,56 @@
<text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text> <text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text>
</a> </a>
</switch> </switch>
</svg> </svg>
<div ref="svgContent" style="display: flex;justify-content: center;">
<div style="flex: 1; margin-left: 298px;">
<el-button @click="ruku" v-if="workTypeName == '入库'" :loading="index < 140 && index != 0">入库</el-button>
<div> <el-button @click="chuku" v-if="workTypeName == '出库'" :loading="index < 200 && index != 0">出库</el-button>
<el-button @click="ruku" v-if="workTypeName == '入库'">入库</el-button> <el-button @click="stop" v-if="isStop">暂停</el-button>
<el-button @click="chuku" v-if="workTypeName == '出库'">出库</el-button> <el-button @click="run" v-if="!isStop">继续</el-button>
<el-button @click="fuwei">复位</el-button> <el-button @click="openVideo">教学视频</el-button>
<el-button @click="alertWin" v-show="showSubmit">完成</el-button> <el-button @click="fuwei" v-if="index > 140 || index1 > 200">复位</el-button>
</div> <el-button @click="alertWin" v-if="index > 140 || index1 > 200">完成</el-button>
</div>
<div style="height: 50px;font-size: 30px;width: 320px;margin-left: auto;" v-if="workTypeName == '入库'">
<span v-if="index >1 && index < 36">{{ messageContentList[0] }}</span>
<span v-if="index > 40 && index < 80">{{ messageContentList[1] }}</span>
<span v-if="index > 85 && index < 138 ">{{ messageContentList[2] }}</span>
<span v-if="index >= 140">{{ messageContentList[3] }}</span>
</div>
<div style="height: 50px;font-size: 30px;width: 320px;margin-left: auto;" v-if="workTypeName == '出库'">
<span v-if="index1 > 1 && index1 < 21">{{ messageContentList1[0] }}</span>
<span v-if="index1 > 22 && index1 < 80">{{ messageContentList1[1] }}</span>
<span v-if="index1 > 130 && index1 < 190">{{ messageContentList1[2] }}</span>
<span v-if="index1 >= 194">{{ messageContentList1[3] }}</span>
</div>
</div>
</el-card> </el-card>
<!-- 新建弹出框 -->
<el-dialog :append-to-body="true" title="教学视频" :visible.sync="dialogVisible" @close="editClose()" width="1105px" :close-on-click-modal="false">
<video ref="videoPlayer" class="video-js" style="width: 1064px;height: 599px;"></video>
<span slot="footer" class="dialog-footer">
<a-button @click="dialogVisible = false" type="danger" ghost>关 闭</a-button>
</span>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import "ol/ol.css"; import videojs from 'video.js'
import { Map, View } from "ol"; import 'video.js/dist/video-js.css'
import TileLayer from "ol/layer/Tile";
import OSM from "ol/source/OSM";
import XYZ from 'ol/source/XYZ';
export default { export default {
data () { data () {
return { return {
height: document.documentElement.clientHeight - 176, height: document.documentElement.clientHeight - 176,
dialogVisible: false,
data: [], data: [],
timer: '',
index: 0,
isStop: true,
// 入库开始 // 入库开始
move: false, move: false,
moveY: false, moveY: false,
...@@ -1723,83 +1745,194 @@ export default { ...@@ -1723,83 +1745,194 @@ export default {
showGoods: true, showGoods: true,
lanMoveY: false, lanMoveY: false,
lanMoveZ: false, lanMoveZ: false,
messageContentList: ['出发', '到达5巷道, 物资入库', '到达2巷道, 物资入库', '完成'],
messageContentList1: ['出发', '到达1巷道, 物资出库', '到达3巷道, 物资出库', '完成'],
// 出库开始 // 出库开始
moveC: false, moveC: false,
move1: false, move1: false,
goodsLan: false,
move3: false, move3: false,
goodsLan3: false, index1: 0,
timer1: '',
workTypeName: '', workTypeName: '',
workId: '', workId: '',
showSubmit: false showSubmit: false,
player: null,
options: {
autoplay: true,
controls: true,
sources: [
{
src: require('../../assets/video/stodownload.mp4'),
type: "video/mp4"
}
]
}
} }
}, },
created () { created () {
this.workTypeName = this.$route.query.workTypeName this.workTypeName = this.$route.query.workTypeName
this.workId = this.$route.query.workId this.workId = this.$route.query.workId
}, },
mounted() {
const that = this
window.onresize = function temp() {
that.height = document.documentElement.clientHeight - 176
}
this.$nextTick(() => {
this.scrollToElement();
})
},
beforeDestroy() {
if (this.player) {
this.player.dispose()
}
},
methods: { methods: {
scrollToElement () {
const el = this.$refs.svgContent;
if (el) {
el.scrollIntoView({ behavior: "smooth" });
}
},
openVideo() {
this.dialogVisible = true
this.$nextTick(() => {
this.player = videojs(this.$refs.videoPlayer, this.options, function onPlayerReady() {
console.log('onPlayerReady', this);
})
})
},
stop() {
this.isStop = false
console.log(this.index1)
// 入库动画暂停
if (this.workTypeName == '入库') {
clearInterval(this.timer)
var elementList = document.getElementsByClassName("inStartClass"); // 获取元素
elementList.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList1 = document.getElementsByClassName("topClass")
elementList1.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList2 = document.getElementsByClassName("lanMoveY")
elementList2.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList3 = document.getElementsByClassName("topClass1")
elementList3.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList4 = document.getElementsByClassName("lanMoveZ")
elementList4.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
}
// 出库动画暂停
if (this.workTypeName == '出库') {
clearInterval(this.timer1)
var elementList5 = document.getElementsByClassName("outStartClass"); // 获取元素
elementList5.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList6 = document.getElementsByClassName("topOut1"); // 获取元素
elementList6.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
var elementList7 = document.getElementsByClassName("topOut3"); // 获取元素
elementList7.forEach(element => {
element.style.animationPlayState = "paused"; // 暂停动画
});
}
},
run() {
this.isStop = true
// 入库动画启动
if (this.workTypeName == '入库') {
this.timer = setInterval(() => {
this.index++
}, 100)
var elementList = document.getElementsByClassName("inStartClass"); // 获取元素
elementList.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList1 = document.getElementsByClassName("topClass")
elementList1.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList2 = document.getElementsByClassName("lanMoveY")
elementList2.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList3 = document.getElementsByClassName("topClass1")
elementList3.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList4 = document.getElementsByClassName("lanMoveZ")
elementList4.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
}
if (this.workTypeName == '出库') {
this.timer1 = setInterval(() => {
this.index1++
}, 100)
var elementList5 = document.getElementsByClassName("outStartClass"); // 获取元素
elementList5.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList6 = document.getElementsByClassName("topOut1"); // 获取元素
elementList6.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
var elementList7 = document.getElementsByClassName("topOut3"); // 获取元素
elementList7.forEach(element => {
element.style.animationPlayState = "running"; // 开启动画
});
}
},
ruku() { ruku() {
this.index = 0
this.move = true // 小车入库的一生走完 this.move = true // 小车入库的一生走完
setTimeout(() => {
this.showGoods = false
this.moveY = true // 5号巷道的黄色一生走完 this.moveY = true // 5号巷道的黄色一生走完
this.lanMoveY = true // 5号巷道的货物一生走完 this.lanMoveY = true // 5号巷道的货物一生走完
}, 4000)
setTimeout(() => {
this.showGoods = true
}, 8000)
setTimeout(() => {
this.showGoods = false
this.moveZ = true // 2号巷道的黄色一生走完 this.moveZ = true // 2号巷道的黄色一生走完
this.lanMoveZ = true // 2号巷道的黄色一生走完 this.lanMoveZ = true // 2号巷道的货物一生走完
}, 9000) this.timer = setInterval(() => {
setTimeout(() => { this.index++
this.showGoods = true }, 100)
this.showSubmit = true
// let url = '/work/makeFinish'
// var params = {
// workId: this.workId
// }
// this.alertWin(url, params)
}, 10000)
}, },
chuku() { chuku() {
this.showGoods = false // 出库去接货物先重置 this.index1 = 0
this.moveC = true // 出库开始 this.moveC = true // 出库开始
this.move1 = true this.move1 = true
setTimeout(() => {
this.goodsLan = true
}, 3000)
setTimeout(() => {
this.goodsLan = false
this.showGoods = true
}, 6000)
setTimeout(() => {
this.showGoods = false
this.move3 = true this.move3 = true
}, 12000) this.timer1 = setInterval(() => {
setTimeout(() => { this.index1++
this.goodsLan3 = true }, 100)
}, 14000)
setTimeout(() => {
this.goodsLan3 = false
this.showGoods = true
}, 16000)
setTimeout(() => {
this.showGoods = false
this.showSubmit = true
// let url = '/work/makeFinish'
// var params = {
// workId: this.workId
// }
// this.alertWin(url, params)
}, 20000)
}, },
async alertWin (url, params) { async alertWin () {
const { data: res } = await this.$axios.get('/work/makeFinish?workId=' +this.workId) const { data: res } = await this.$axios.get('/work/makeFinish?workId=' +this.workId)
if (res.code === 99200) { if (res.code === 99200) {
this.$message.success(res.message) this.$message.success(res.message)
...@@ -1808,27 +1941,24 @@ export default { ...@@ -1808,27 +1941,24 @@ export default {
} }
}, },
fuwei() { fuwei() {
if (this.workTypeName == '入库') {
this.move = false this.move = false
this.moveY = false this.moveY = false
this.moveZ = false this.moveZ = false
this.showGoods = true
this.lanMoveY = false this.lanMoveY = false
this.lanMoveZ= false this.lanMoveZ= false
this.index = 0
clearInterval(this.timer)
}
if (this.workTypeName == '出库') {
this.moveC = false this.moveC = false
this.move1 = false this.move1 = false
this.goodsLan = false
this.move3 = false this.move3 = false
this.goodsLan3 = false this.index1 = 0
clearInterval(this.timer1)
this.showSubmit = false
} }
},
computed: {
} }
},
} }
</script> </script>
...@@ -1863,7 +1993,7 @@ export default { ...@@ -1863,7 +1993,7 @@ export default {
/* 第一次入库黄色模块 */ /* 第一次入库黄色模块 */
.topClass { .topClass {
animation: changeTop 4s 1 linear; animation: changeTop 8s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
...@@ -1871,13 +2001,16 @@ export default { ...@@ -1871,13 +2001,16 @@ export default {
0%{ 0%{
transform: translateY(0px) transform: translateY(0px)
} }
50%{
transform: translateY(0px)
}
100%{ 100%{
transform: translateY(-580px) transform: translateY(-580px)
} }
} }
.topClass1 { .topClass1 {
animation: changeTop1 4s 1 linear; animation: changeTop1 12s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
...@@ -1885,20 +2018,26 @@ export default { ...@@ -1885,20 +2018,26 @@ export default {
0%{ 0%{
transform: translateY(0px) transform: translateY(0px)
} }
75%{
transform: translateY(0px)
}
100%{ 100%{
transform: translateY(-380px) transform: translateY(-380px)
} }
} }
.lanMoveZ { .lanMoveZ {
animation: blueZ 6s 1 linear; animation: blueZ 15s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
@keyframes blueZ { @keyframes blueZ {
0% { 0% {
transform: translateY(0px) transform: translateY(0px)
} }
66.6% { 60% {
transform: translateY(0px)
}
80% {
transform: translateY(-380px) transform: translateY(-380px)
} }
100% { 100% {
...@@ -1909,14 +2048,17 @@ export default { ...@@ -1909,14 +2048,17 @@ export default {
/* 第一次入库蓝色模块 */ /* 第一次入库蓝色模块 */
.lanMoveY { .lanMoveY {
animation: blueY 6s 1 linear; animation: blueY 10s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
@keyframes blueY { @keyframes blueY {
0% { 0% {
transform: translateY(0px) transform: translateY(0px)
} }
66.6% { 40% {
transform: translateY(0px)
}
80% {
transform: translateY(-580px) transform: translateY(-580px)
} }
100% { 100% {
...@@ -1945,10 +2087,10 @@ export default { ...@@ -1945,10 +2087,10 @@ export default {
60% { 60% {
transform: translateX(718px) transform: translateX(718px)
} }
70% { 66% {
transform: translateX(465px) transform: translateX(465px)
} }
85% { 86% {
transform: translateX(465px) transform: translateX(465px)
} }
95% { 95% {
...@@ -1959,7 +2101,7 @@ export default { ...@@ -1959,7 +2101,7 @@ export default {
} }
} }
.topOut1 { .topOut1 {
animation: topOut1 6s 1 linear; animation: topOut1 20s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
...@@ -1967,13 +2109,13 @@ export default { ...@@ -1967,13 +2109,13 @@ export default {
0% { 0% {
transform: translateY(0px) transform: translateY(0px)
} }
45% { 10% {
transform: translateY(-380px) transform: translateY(0px)
} }
50% { 25% {
transform: translateY(-380px) transform: translateY(-380px)
} }
95% { 35% {
transform: translateY(0px) transform: translateY(0px)
} }
100% { 100% {
...@@ -1982,7 +2124,7 @@ export default { ...@@ -1982,7 +2124,7 @@ export default {
} }
.topOut3 { .topOut3 {
animation: topOut3 4s 1 linear; animation: topOut3 20s 1 linear;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
...@@ -1990,13 +2132,13 @@ export default { ...@@ -1990,13 +2132,13 @@ export default {
0% { 0% {
transform: translateY(0px) transform: translateY(0px)
} }
45% { 66% {
transform: translateY(-280px) transform: translateY(0px)
} }
50% { 76% {
transform: translateY(-280px) transform: translateY(-280px)
} }
95% { 86% {
transform: translateY(0px) transform: translateY(0px)
} }
100% { 100% {
......
...@@ -5,7 +5,7 @@ function resolve (dir) { ...@@ -5,7 +5,7 @@ function resolve (dir) {
module.exports = { module.exports = {
publicPath: '/', publicPath: '/',
devServer: { devServer: {
host: '192.168.3.101', host: '192.168.3.129',
port: 2233, port: 2233,
headers: { headers: {
//因为qiankun内部请求都是fetch来请求资源,所以子应用必须允许跨域 //因为qiankun内部请求都是fetch来请求资源,所以子应用必须允许跨域
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论