ruanqi 4 years ago
parent
commit
d979bafcd2
  1. 5
      src/api/base/site.js
  2. 3
      src/api/production/schedule.js
  3. 33
      src/views/common/login.vue
  4. 3
      src/views/main.vue
  5. 107
      src/views/modules/schedule/cancelSfdc.vue
  6. 2
      src/views/modules/schedule/schedule.vue
  7. 2
      src/views/modules/sys/user-add-or-update.vue
  8. 161
      src/views/modules/sys/user.vue

5
src/api/base/site.js

@ -41,3 +41,8 @@ export const getWorkCenterDataDetail=data => createAPI(`/base/getWorkCenterDataD
export const saveResource=data => createAPI(`/base/saveResource`, 'post', data); export const saveResource=data => createAPI(`/base/saveResource`, 'post', data);
export const deleteResource=data => createAPI(`/base/deleteResource`, 'post', data); export const deleteResource=data => createAPI(`/base/deleteResource`, 'post', data);
export const getUnSelectedSiteData=data => createAPI(`/base/getUnSelectedSiteData`, 'post', data);
export const getAccessSiteData=data => createAPI(`/base/getAccessSiteData`, 'post', data);
export const addAccessSite=data => createAPI(`/base/addAccessSite`, 'post', data);
export const deleteAccessSite=data => createAPI(`/base/deleteAccessSite`, 'post', data);

3
src/api/production/schedule.js

@ -18,3 +18,6 @@ export const cancelSchedule = data => createAPI(`/schedule/cancelSchedule`,'post
export const circulationSchedule = data => createAPI(`/schedule/circulationSchedule`,'post',data) export const circulationSchedule = data => createAPI(`/schedule/circulationSchedule`,'post',data)
export const getSfdcList = data => createAPI(`/schedule/getSfdcList`,'post',data) export const getSfdcList = data => createAPI(`/schedule/getSfdcList`,'post',data)
export const cancelSfdc = data => createAPI(`/schedule/cancelSfdc`,'post',data) export const cancelSfdc = data => createAPI(`/schedule/cancelSfdc`,'post',data)
export const getSfdcOperatorList = data => createAPI(`/schedule/getSfdcOperatorList`,'post',data)
export const getSfdcDefectList = data => createAPI(`/schedule/getSfdcDefectList`,'post',data)

33
src/views/common/login.vue

@ -6,6 +6,18 @@
<h3 class="login-title">用户登陆</h3> <h3 class="login-title">用户登陆</h3>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon>
<el-form-item>
<el-select v-model="dataForm.site" style="width: 230px"
placeholder="请选择工厂">
<el-option
v-for="(item,index) in siteList"
:key="index"
:label="item.siteID+' - '+item.siteName"
:value="item.siteID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="userName"> <el-form-item prop="userName">
<el-input v-model="dataForm.userName" placeholder="帐号"></el-input> <el-input v-model="dataForm.userName" placeholder="帐号"></el-input>
</el-form-item> </el-form-item>
@ -23,6 +35,9 @@
</template> </template>
<script> <script>
import {
getSiteData,
} from "@/api/base/site.js"
import { getUUID } from '@/utils' import { getUUID } from '@/utils'
export default { export default {
data () { data () {
@ -32,8 +47,10 @@
userName: '', userName: '',
password: '', password: '',
uuid: '', uuid: '',
captcha: ''
captcha: '',
site:''
}, },
siteList:[],
dataRule: { dataRule: {
userName: [ userName: [
{ required: true, message: '帐号不能为空', trigger: 'blur' } { required: true, message: '帐号不能为空', trigger: 'blur' }
@ -47,8 +64,18 @@
}, },
created () { created () {
this.userName(); this.userName();
this.getSiteData();
}, },
methods: { methods: {
getSiteData(){
let data={};
getSiteData(data).then(({data}) => {
this.siteList = data.rows
if(this.siteList.length>0){
this.dataForm.site=this.siteList[0].siteID
}
})
},
// //
userName(){ userName(){
this.dataForm.userName = localStorage.getItem('userName') this.dataForm.userName = localStorage.getItem('userName')
@ -63,7 +90,8 @@
data: this.$http.adornData({ data: this.$http.adornData({
'username': this.dataForm.userName, 'username': this.dataForm.userName,
'password': this.dataForm.password, 'password': this.dataForm.password,
'uuid': this.dataForm.uuid
'uuid': this.dataForm.uuid,
'site': this.dataForm.site,
}) })
}).then(({data}) => { }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
@ -73,6 +101,7 @@
localStorage.setItem('locale', data.language) localStorage.setItem('locale', data.language)
localStorage.setItem('refresh', "0") localStorage.setItem('refresh', "0")
localStorage.setItem('userName', this.dataForm.userName) localStorage.setItem('userName', this.dataForm.userName)
localStorage.setItem('accessSite', this.dataForm.site)
} else { } else {
this.$message.error(data.msg) this.$message.error(data.msg)
} }

3
src/views/main.vue

@ -97,7 +97,8 @@
this.userName = data.user.username this.userName = data.user.username
this.site = data.user.site this.site = data.user.site
this.languageDefault = data.user.languageDefault this.languageDefault = data.user.languageDefault
this.site = data.user.site
// this.site = data.user.site
this.site =localStorage.getItem("accessSite")
this.userDisplay = data.user.userDisplay this.userDisplay = data.user.userDisplay
} }
}) })

107
src/views/modules/schedule/cancelSfdc.vue

@ -80,10 +80,12 @@
header-align="center" header-align="center"
fixed="left" fixed="left"
align="center" align="center"
width="160"
width="210"
label="操作"> label="操作">
<template slot-scope="scope" class="foo_container"> <template slot-scope="scope" class="foo_container">
<a type="text" size="small" v-if="scope.row.reverseflag==='N'" @click="cancelSfdc(scope.row)">取消报工</a> <a type="text" size="small" v-if="scope.row.reverseflag==='N'" @click="cancelSfdc(scope.row)">取消报工</a>
<a type="text" size="small" @click="operatorModal(scope.row)">操作员明细</a>
<a type="text" size="small" @click="defectModal(scope.row)">不良原因</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -227,7 +229,77 @@
label="机台名称"> label="机台名称">
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog title="操作员明细" :close-on-click-modal="false" v-drag :visible.sync="operatorModalFlag" width="450px">
<el-table
height="200"
:data="operatorModalList"
border
style="width: 100%">
<el-table-column
type="index"
header-align="center"
align="right"
min-width="60"
label="序号">
</el-table-column>
<el-table-column
prop="operatorID"
header-align="center"
align="left"
min-width="100"
label="操作员ID">
</el-table-column>
<el-table-column
prop="operatorName"
header-align="center"
align="left"
min-width="120"
label="操作员姓名">
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="operatorModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="不良原因" :close-on-click-modal="false" v-drag :visible.sync="defectModalFlag" width="450px">
<el-table
height="200"
:data="defectModalList"
border
style="width: 100%">
<el-table-column
type="index"
header-align="center"
align="right"
min-width="60"
label="序号">
</el-table-column>
<el-table-column
prop="defectCode"
header-align="center"
align="left"
min-width="100"
label="不良代码">
</el-table-column>
<el-table-column
prop="defectDesc"
header-align="center"
align="left"
min-width="120"
label="不良原因">
</el-table-column>
<el-table-column
prop="defectQty"
header-align="center"
align="right"
min-width="120"
label="不良数量">
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="defectModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div> </div>
</template> </template>
@ -236,6 +308,8 @@
import { import {
getSfdcList, getSfdcList,
cancelSfdc, cancelSfdc,
getSfdcOperatorList,
getSfdcDefectList,
} from '@/api/production/schedule.js' } from '@/api/production/schedule.js'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
// import { // import {
@ -288,6 +362,10 @@
resourceId:'', resourceId:'',
shiftNo:'', shiftNo:'',
}, },
operatorModalList:[],
operatorModalFlag:false,
defectModalList:[],
defectModalFlag:false,
} }
}, },
mounted () { mounted () {
@ -381,7 +459,30 @@
}) })
}) })
}, },
operatorModal(row){
let inData={
site:row.site,
orderNo:row.orderNo,
itemNo:row.itemNo,
seqNo:row.seqNo,
}
getSfdcOperatorList(inData).then(({data}) => {
this.operatorModalList = data.rows
})
this.operatorModalFlag=true;
},
defectModal(row){
let inData={
site:row.site,
orderNo:row.orderNo,
itemNo:row.itemNo,
seqNo:row.seqNo,
}
getSfdcDefectList(inData).then(({data}) => {
this.defectModalList = data.rows
})
this.defectModalFlag=true;
}
}, },
created () { created () {
} }

2
src/views/modules/schedule/schedule.vue

@ -369,7 +369,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="scheduledModalFlag = false">关闭</el-button> <el-button type="primary" @click="scheduledModalFlag = false">关闭</el-button>
<!-- <el-button type="primary" :disabled="bannersBut" @click="saveBanners()">确定</el-button>--> <!-- <el-button type="primary" :disabled="bannersBut" @click="saveBanners()">确定</el-button>-->
</el-footer> </el-footer>

2
src/views/modules/sys/user-add-or-update.vue

@ -97,7 +97,7 @@
mobile: '', mobile: '',
roleIdList: [], roleIdList: [],
status: 1, status: 1,
site: 'C70',
site: '',
userDisplay: '' userDisplay: ''
}, },
dataRule: { dataRule: {

161
src/views/modules/sys/user.vue

@ -94,6 +94,8 @@
<template slot-scope="scope"> <template slot-scope="scope">
<a v-if="isAuth('sys:user:update')" type="text" size="small" <a v-if="isAuth('sys:user:update')" type="text" size="small"
@click="addOrUpdateHandle(scope.row.userId)">修改</a> @click="addOrUpdateHandle(scope.row.userId)">修改</a>
<a v-if="isAuth('sys:user:update')" type="text" size="small"
@click="accessSiteModal(scope.row)">工厂权限</a>
<a v-if="isAuth('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.userId)">删除</a> <a v-if="isAuth('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.userId)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
@ -109,7 +111,77 @@
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<el-dialog title="工厂权限" :close-on-click-modal="false" v-drag :visible.sync="accessSiteFlag" width="800px">
<div style="font-size: 12px">
用户ID<el-input v-model="userData.username" style="width: 120px"></el-input>
用户姓名<el-input v-model="userData.userDisplay" style="width: 120px"></el-input>
</div>
<el-container style="margin-top: -12px;">
<el-main style="width: 300px">
<span style="font-size: 12px" >可选工厂</span>
<el-table
height="300px"
:data="SiteList1"
border
@row-click="clickSite1"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
prop="siteID"
header-align="center"
align="left"
min-width="110"
label="工厂ID">
</el-table-column>
<el-table-column
prop="siteName"
header-align="center"
align="left"
min-width="170"
label="工厂名称">
</el-table-column>
</el-table>
</el-main>
<el-main style="width: 100px">
<div style="margin-top: 100px">
<el-button type="primary" @click="addSite()">添加>></el-button>
</div>
<div style="margin-top: 20px">
<el-button type="primary" @click="deleteSite()">删除<<</el-button>
</div>
</el-main>
<el-main style="width: 300px">
<span style="font-size: 12px" >已选工厂</span>
<el-table
height="300px"
:data="SiteList2"
border
@row-click="clickSite2"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
prop="siteID"
header-align="center"
align="left"
min-width="110"
label="工厂ID">
</el-table-column>
<el-table-column
prop="siteName"
header-align="center"
align="left"
min-width="170"
label="工厂名称">
</el-table-column>
</el-table>
</el-main>
</el-container>
<!-- <el-footer style="height:40px;margin-top: 20px;text-align:center">-->
<!-- <el-button type="primary" @click="routingModelFlag = false">关闭</el-button>-->
<!-- </el-footer>-->
</el-dialog>
</div> </div>
</template> </template>
@ -118,7 +190,12 @@
import AddOrUpdate from './user-add-or-update' import AddOrUpdate from './user-add-or-update'
import {debounce, throttle} from "../../../utils/common"; import {debounce, throttle} from "../../../utils/common";
import {
getUnSelectedSiteData,
getAccessSiteData,
addAccessSite,
deleteAccessSite,
} from "@/api/base/site.js"
export default { export default {
data() { data() {
@ -202,7 +279,16 @@
totalPage: 0, totalPage: 0,
dataListLoading: false, dataListLoading: false,
dataListSelections: [], dataListSelections: [],
addOrUpdateVisible: false
addOrUpdateVisible: false,
accessSiteFlag: false,
SiteList1:[],
SiteList2:[],
SiteRow1:null,
SiteRow2:null,
userData:{
username:'',
userDisplay:'',
},
} }
}, },
components: { components: {
@ -217,6 +303,75 @@
}) })
}, },
methods: { methods: {
accessSiteModal(row){
let inData={
username:row.username
}
getUnSelectedSiteData(inData).then(({data}) => {
this.SiteList1 = data.rows;
})
getAccessSiteData(inData).then(({data}) => {
this.SiteList2 = data.rows;
})
this.userData.username=row.username;
this.userData.userDisplay=row.userDisplay;
this.accessSiteFlag=true;
},
clickSite1(row){
this.SiteRow1 = JSON.parse(JSON.stringify(row));
},
clickSite2(row){
this.SiteRow2 = JSON.parse(JSON.stringify(row));
},
addSite(){
if(this.SiteRow1==null){
this.$alert("请选择可选工厂!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let inSiteData={
site:this.SiteRow1.siteID,
userID:this.userData.username,
}
addAccessSite(inSiteData).then(({data}) => {
let inData={
username:this.userData.username
}
getUnSelectedSiteData(inData).then(({data}) => {
this.SiteList1 = data.rows;
})
getAccessSiteData(inData).then(({data}) => {
this.SiteList2 = data.rows;
})
this.SiteRow1=null;
})
},
deleteSite(){
if(this.SiteRow2==null){
this.$alert("请选择已选工厂!", '错误', {
confirmButtonText: '确定'
})
return false;
}
let inSiteData={
site:this.SiteRow2.siteID,
userID:this.userData.username,
}
deleteAccessSite(inSiteData).then(({data}) => {
let inData={
username:this.userData.username
}
getUnSelectedSiteData(inData).then(({data}) => {
this.SiteList1 = data.rows;
})
getAccessSiteData(inData).then(({data}) => {
this.SiteList2 = data.rows;
})
this.SiteRow2=null;
})
},
// //
handleCurrentChange(val) { handleCurrentChange(val) {
this.selectUser = val this.selectUser = val

Loading…
Cancel
Save