plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

145 lines
4.1 KiB

<template>
<div class="mod-oss">
<el-dialog
v-drag
:title="title"
:close-on-click-modal="false"
:visible.sync="visible"
width="400px"
:append-to-body="true">
<el-form>
<el-form label-position="top">
<el-form-item :label="'标签名称'">
<el-input v-model="userPrint.reportfile" readonly></el-input>
</el-form-item>
<el-form-item :label="'打印机地址'">
<el-input v-model="userPrint.ipaddress" ></el-input>
</el-form-item>
<el-form-item label="打印机名称">
<!-- <el-select placeholder=""-->
<!-- filterable-->
<!-- @blur="selectBlur" style="width:100%" v-model="userPrint.newprintername">-->
<!-- <el-option v-for="(item,index) in printList"-->
<!-- :key="index"-->
<!-- :label="item.label" :value="item.label"></el-option>-->
<!-- </el-select>-->
<el-autocomplete
class="inline-input"
v-model="userPrint.newprintername"
:fetch-suggestions="querySearch"
style="width:100% "
placeholder="请输入内容"
>
<template slot-scope="{ item }">
<span class="addr">{{ item.label }}</span>
</template>
</el-autocomplete>
</el-form-item>
</el-form>
<select v-show="false" ref="printElement">
</select>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="savePrint()" type="primary">{{ buttons.save }}</el-button>
<el-button @click="visible = false" type="primary">{{ buttons.close }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {saveUserLabelPrint} from '@/api/print/print.js';
export default {
data() {
return {
tableHeight: 365,
title: '用户打印机管理',
visible: false,
userPrint: {
newprintername: '',
userid: this.$store.state.user.name,
ipaddress: '',
reportid: '',
reportFile: '',
},
printList: [],
buttons: {
save: "保存",
close: "关闭"
},
buttonList: []
}
},
components: {},
mounted() {
this.$nextTick(() => {
this.height = (window.innerHeight * 0.82);
})
},
methods: {
querySearch(queryString, cb) {
var restaurants = this.printList;
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
// 调用 callback 返回建议列表的数据
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.label.indexOf(queryString) === 0);
};
},
selectBlur(e){
this.userPrint.printername = e.target.value
},
// 初始化
init(val) {
this.visible = true
this.userPrint = val
this.userPrint.ipaddress = val.ipaddress?val.ipaddress: '127.0.0.1'
this.getPrintName()
},
// 获取所有打印机
getPrintName(){
this.$nextTick(() => {
let lodop = this.getLodop()
var elementById = this.$refs.printElement;
lodop.Create_Printer_List(elementById)
setTimeout(()=>{},1000)
var children = elementById.children
let list = []
for (let child of children) {
let option = {
value: child.innerText,
label: child.innerText
}
list.push(option)
}
this.printList = list
})
},
// 保存打印机
savePrint(){
this.userPrint.userid = this.$store.state.user.name
saveUserLabelPrint(this.userPrint).then(({data}) =>{
if (data.code === 0){
this.$message.success(data.msg)
this.visible = false
this.$emit('refreshDataList')
}else {
this.$message.warning(data.msg)
}
})
}
},
created() {
}
}
</script>