diff --git a/package.json b/package.json index b49a869..9447e43 100644 --- a/package.json +++ b/package.json @@ -43,13 +43,16 @@ "crypto-js": "^4.2.0", "echarts": "5.4.0", "element-ui": "2.15.14", - "file-saver": "2.0.5", + "file-saver": "^2.0.5", "fuse.js": "6.4.3", "highlight.js": "9.18.5", + "html2canvas": "^1.4.1", "js-beautify": "1.13.0", "js-cookie": "3.0.1", "jsencrypt": "3.0.0-rc.1", + "jszip": "^3.10.1", "nprogress": "0.2.0", + "qrcodejs2": "^0.0.2", "quill": "1.3.7", "screenfull": "5.0.2", "sm-crypto": "^0.3.13", diff --git a/src/api/baseGround/newBuy.js b/src/api/baseGround/newBuy.js index eb31c5e..3b68370 100644 --- a/src/api/baseGround/newBuy.js +++ b/src/api/baseGround/newBuy.js @@ -9,6 +9,78 @@ export function getListNewBuy(query) { }) } +//任务 详情 +export function getPurchaseCheckInfo(id) { + return request({ + url: '/material/purchase_check_info/'+ id, + method: 'get', + }) +} + +// 保存--新增 +export function addPurchaseCheckInfo(data) { + return request({ + url: '/material/purchase_check_info', + method: 'post', + data: data, + }) +} + +//人员 详情 +export function getNoticePeople(query) { + return request({ + url: '/material/purchase_notice_person/list', + method: 'get', + params: query, + }) +} + +// 人员--删除 +export function delPeople(ids) { + return request({ + url: '/material/purchase_notice_person/' + ids, + method: 'delete', + }) +} + + + +// 人员管理--新增 +export function addNoticeUser(data) { + return request({ + url: '/material/purchase_notice_person/batchAddNoticePerson', + method: 'post', + data: data, + }) +} + +// 仓库管理--修改 +export function bmNoticeInfo(data) { + return request({ + url: '/material/purchase_notice_person/batchSendSms', + method: 'put', + data: data, + }) +} + + +//机具类型管理列表信息 +export function getUserAll() { + return request({ + url: '/system/user/list', + method: 'get', + }) +} + +//获取机具类型树2 +export function equipmentTypeTree(query) { + return request({ + url: '/material/ma_type/equipmentType', + method: 'get', + params: query, + }) +} + //查看机具类型管理列表详细信息 export function getHouseDetail(id) { return request({ @@ -27,6 +99,8 @@ export function queryKeeperNameApi(query) { }) } + + // 仓库管理--删除 export function delHouse(id) { return request({ diff --git a/src/api/baseGround/newBuyBind.js b/src/api/baseGround/newBuyBind.js new file mode 100644 index 0000000..b6fbb8a --- /dev/null +++ b/src/api/baseGround/newBuyBind.js @@ -0,0 +1,100 @@ +import request from '@/utils/request' + +//机具类型管理列表信息 +export function getListNewBuyBind(query) { + return request({ + url: '/material/purchase/bind/list', + method: 'get', + params: query, + }) +} + +//任务 详情 +export function getListDetail(query) { + return request({ + url: '/material/purchase/bind/details', + method: 'get', + params: query, + }) +} + +//任务 详情 +export function bindAllData(data) { + return request({ + url: '/material/purchase/bind/bind', + method: 'post', + data: data, + }) +} + +//二级页面 详情 +export function getListDetailById(query) { + return request({ + url: '/material/purchase/bind/getById', + method: 'get', + params: query, + }) +} + +// 导出 +export function exportNewBuy(data) { + return request({ + url: '/material/purchase/bind/downloadQrCode', + method: 'post', + responseType: 'blob', + data: data + }) +} + + + +//人员 详情 +export function getNoticePeople(query) { + return request({ + url: '/material/purchase_notice_person/list', + method: 'get', + params: query, + }) +} + +// 人员--删除 +export function delPeople(ids) { + return request({ + url: '/material/purchase_notice_person/' + ids, + method: 'delete', + }) +} + +// 人员管理--新增 +export function addNoticeUser(data) { + return request({ + url: '/material/purchase_notice_person/batchAddNoticePerson', + method: 'post', + data: data, + }) +} + +// 仓库管理--修改 +export function bmNoticeInfo(data) { + return request({ + url: '/material/purchase_notice_person/batchSendSms', + method: 'put', + data: data, + }) +} + + +//机具类型管理列表信息 +export function getUserAll() { + return request({ + url: '/system/user/list', + method: 'get', + }) +} + + + + + + + diff --git a/src/main.js b/src/main.js index ae36024..2982591 100644 --- a/src/main.js +++ b/src/main.js @@ -38,6 +38,7 @@ import VueMeta from 'vue-meta' // 字典数据组件 import DictData from '@/components/DictData' +import global_ from '@/utils/globalUrl' // 全局方法挂载 Vue.prototype.getDicts = getDicts Vue.prototype.getConfigKey = getConfigKey @@ -48,7 +49,7 @@ Vue.prototype.selectDictLabel = selectDictLabel Vue.prototype.selectDictLabels = selectDictLabels Vue.prototype.download = download Vue.prototype.handleTree = handleTree - +Vue.prototype.globalUrl = global_ // 全局组件挂载 Vue.component('DictTag', DictTag) Vue.component('Pagination', Pagination) diff --git a/src/permission.js b/src/permission.js index 5297df9..db6baf7 100644 --- a/src/permission.js +++ b/src/permission.js @@ -8,7 +8,10 @@ import { isRelogin } from '@/utils/request' NProgress.configure({ showSpinner: false }) -const whiteList = ['/login', '/register'] +const whiteList = [ + '/login', '/register', + '/qrCode/qrCodePage', +] router.beforeEach((to, from, next) => { NProgress.start() diff --git a/src/router/index.js b/src/router/index.js index 493b19f..7c7c95c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -74,6 +74,11 @@ export const constantRoutes = [ } ] }, + { + path: '/qrCode/qrCodePage', + component: () => import('@/views/qrCode/qrCode'), + hidden: true + }, { path: '/user', component: Layout, diff --git a/src/utils/chapter.js b/src/utils/chapter.js new file mode 100644 index 0000000..69871a3 --- /dev/null +++ b/src/utils/chapter.js @@ -0,0 +1,76 @@ +let chapter = (text, companyName) => { + let canvas = document.getElementById("canvas"); + let context = canvas.getContext("2d"); + + //let text = "XXX专用章"; + //let companyName = "XXX科技股份有限公司"; + + // 绘制印章边框 + let width = canvas.width / 2; + let height = canvas.height / 2; + context.lineWidth = 3; + context.strokeStyle = "#f00"; + context.beginPath(); + context.arc(width, height, 80, 0, Math.PI * 2); //宽、高、半径 + context.stroke(); + + //画五角星 + create5star(context, width, height, 20, "#f00", 0); + + // 绘制印章名称 + context.font = "14px 宋体"; + context.textBaseline = "middle"; //设置文本的垂直对齐方式 + context.textAlign = "center"; //设置文本的水平对对齐方式 + context.lineWidth = 1; + context.strokeStyle = "#f00"; + context.strokeText(text, width, height + 50); + + // 绘制印章单位 + context.translate(width, height); // 平移到此位置, + context.font = "14px 宋体"; + let count = companyName.length; // 字数 + let angle = (4 * Math.PI) / (3 * (count - 1)); // 字间角度 + let chars = companyName.split(""); + let c; + for (let i = 0; i < count; i++) { + c = chars[i]; // 需要绘制的字符 + if (i == 0) { + context.rotate((5 * Math.PI) / 6); + } else { + context.rotate(angle); + } + + context.save(); + context.translate(65, 0); // 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离 + context.rotate(Math.PI / 2); // 旋转90度,让字平行于x轴 + context.strokeText(c, 0, 0); // 此点为字的中心点 + context.restore(); + } + + //绘制五角星 + function create5star(context, sx, sy, radius, color, rotato) { + context.save(); + context.fillStyle = color; + context.translate(sx, sy); //移动坐标原点 + context.rotate(Math.PI + rotato); //旋转 + context.beginPath(); //创建路径 + // let x = Math.sin(0); + // let y = Math.cos(0); + let dig = (Math.PI / 5) * 4; + for (let i = 0; i < 5; i++) { + //画五角星的五条边 + let x = Math.sin(i * dig); + let y = Math.cos(i * dig); + context.lineTo(x * radius, y * radius); + } + context.closePath(); + context.stroke(); + context.fill(); + context.restore(); + } + }; + + export default chapter; + + + \ No newline at end of file diff --git a/src/utils/globalUrl.js b/src/utils/globalUrl.js new file mode 100644 index 0000000..c4872da --- /dev/null +++ b/src/utils/globalUrl.js @@ -0,0 +1,19 @@ +// const qrUrl = 'http://192.168.0.14:21624/qrCode/qrCodePage?qrCode='; //测试 +// const qrUrl = 'http://112.29.103.165:21626/qrCode/qrCodePage?qrCode='; //重庆 +// const qrUrl = 'http://112.29.103.165:21624/qrCode/qrCodePage?qrCode='; //宁夏 +// const qrUrl = 'https://z.csgmall.com.cn/gl/qrCode/qrCodePage?qrCode='; //南网 +const qrUrl = 'http://192.168.0.110:80/qrCode/qrCodePage?qrCode='; //本地 +// const qrUrl = process.env.NODE_ENV === 'production' ? 'http://192.168.0.14:18866/qrCode/qrCodePage?qrCode=' : 'http://192.168.0.14:21624/qrCode/qrCodePage?qrCode=' +// let qrUrl = '' +const origin = window.location.origin + +// qrUrl = origin + '/qrCode/qrCodePage?qrCode=' +// if (origin == 'http://112.29.103.165:21626') { +// qrUrl = 'http://112.29.103.165:21626/qrCode/qrCodePage?qrCode=' +// } else { +// qrUrl = 'http://192.168.0.14:18866/qrCode/qrCodePage?qrCode=' +// } + +export default { + qrUrl, +} diff --git a/src/views/material/materialsManage/house/index.vue b/src/views/material/materialsManage/house/index.vue index c06c084..8bb8ece 100644 --- a/src/views/material/materialsManage/house/index.vue +++ b/src/views/material/materialsManage/house/index.vue @@ -92,7 +92,7 @@ 删除 - +
- - - - - - - - - - - + + + + + + + + - - + + - - - - - - - - - - - + @@ -177,36 +123,35 @@ > - + @@ -228,16 +173,21 @@ > + + + + + + diff --git a/src/views/material/newBuy/goodsArrived/index.vue b/src/views/material/newBuy/goodsArrived/index.vue index b926eac..15c8be7 100644 --- a/src/views/material/newBuy/goodsArrived/index.vue +++ b/src/views/material/newBuy/goodsArrived/index.vue @@ -6,13 +6,18 @@ :pageContent="pageContent" @goBack="goBack" /> - + @addTools="addTools" + @editTools="editTools" + @addToolsSuccess="addToolsSuccess" + @queryTools="queryTools" + />
@@ -20,11 +25,13 @@ import PageHeader from "@/components/pageHeader"; import Home from "./component/home.vue"; // 主列表 import AddTools from './component/addTools.vue' // 新增机具 和 修改机具 +import QueryTools from './component/queryTools.vue' // 查询机具 和 验收机具 export default { components: { Home, PageHeader, AddTools, + QueryTools }, data() { return { @@ -51,6 +58,20 @@ export default { addToolsSuccess() { this.isShowComponent = 'Home' }, + /* 编辑工机具 */ + editTools(id) { + this.isEdit = true + this.pageContent = '编辑机具' + this.editTaskId = id + this.isShowComponent = 'AddTools' + }, + /* 查询工机具 */ + queryTools(id) { + this.isView = true + this.pageContent = '详情信息' + this.queryTaskId = id + this.isShowComponent = 'QueryTools' + }, /* 返回按钮 */ goBack() { this.isShowComponent = "Home"; diff --git a/src/views/material/newBuy/goodsBind/component/bindQrTools.vue b/src/views/material/newBuy/goodsBind/component/bindQrTools.vue new file mode 100644 index 0000000..dfbad01 --- /dev/null +++ b/src/views/material/newBuy/goodsBind/component/bindQrTools.vue @@ -0,0 +1,914 @@ + + + + diff --git a/src/views/material/newBuy/goodsBind/component/bindTools.vue b/src/views/material/newBuy/goodsBind/component/bindTools.vue new file mode 100644 index 0000000..1822b17 --- /dev/null +++ b/src/views/material/newBuy/goodsBind/component/bindTools.vue @@ -0,0 +1,665 @@ + + + + diff --git a/src/views/material/newBuy/goodsBind/component/home.vue b/src/views/material/newBuy/goodsBind/component/home.vue new file mode 100644 index 0000000..c09b555 --- /dev/null +++ b/src/views/material/newBuy/goodsBind/component/home.vue @@ -0,0 +1,575 @@ + + + + diff --git a/src/views/material/newBuy/goodsBind/index.vue b/src/views/material/newBuy/goodsBind/index.vue new file mode 100644 index 0000000..164d83e --- /dev/null +++ b/src/views/material/newBuy/goodsBind/index.vue @@ -0,0 +1,79 @@ + + + \ No newline at end of file diff --git a/src/views/qrCode/qrCode.vue b/src/views/qrCode/qrCode.vue new file mode 100644 index 0000000..4e153d1 --- /dev/null +++ b/src/views/qrCode/qrCode.vue @@ -0,0 +1,226 @@ + + + +