Commit 8e6404e4 by 林家欣

GLN查询接口联调

parent 7057b6d3
...@@ -17,10 +17,12 @@ const getCaptcha = (query = {}) => { ...@@ -17,10 +17,12 @@ const getCaptcha = (query = {}) => {
import home from "./module/home.js" import home from "./module/home.js"
import business from "./module/business.js" import business from "./module/business.js"
import search from "./module/search.js"
const api = { const api = {
home, home,
business, business,
search,
getCaptcha, getCaptcha,
} }
......
import {
POST
} from "../fetch.js"
const Prefix = process.env.NODE_ENV === 'development' ? '/gs1' : '';
// 条码查询—GLN查询/境外码查询
const searchGln = (params = {}) => {
return POST(`${Prefix}/office/codeSearch/api/gln`, params)
}
export default {
searchGln,
}
import Vue from "vue" import Vue from "vue"
import { BlockRoleType } from "@/config/constant"
import store from "@/vuex/store";
Vue.directive("preventReClick",{ Vue.directive("preventReClick",{
inserted(el,binding){ inserted(el,binding){
...@@ -15,43 +11,6 @@ Vue.directive("preventReClick",{ ...@@ -15,43 +11,6 @@ Vue.directive("preventReClick",{
} }
}) })
Vue.directive("permission", {
bind(el, { value }) {
let isHas = false
const roleId = store.getters["user/userRole"];
// 设置业委会委员、会计、物业 需要管理员权限
if (value === 'block_set_comMember'
|| value === 'block_set_accountant'
|| value === 'block_set_servant') {
isHas = roleId === BlockRoleType.admin
}
// 会计有添加账号权限
if (value === 'account_add_balance') {
isHas = roleId === BlockRoleType.accountant
}
// 事项
if (value === 'matter_create_rectification' || value === 'matter_create_letter') {
isHas = roleId === BlockRoleType.comMember
}
if (value === 'matter_create'
|| value === 'matter_create_vote'
|| value === 'matter_create_vote-result'
|| value === 'matter_create_announce') {
isHas = roleId === BlockRoleType.comMember || roleId === BlockRoleType.temporal
}
setTimeout(() => {
if (!isHas) {
try {
el.parentNode.removeChild(el)
} catch (err) {
// console.log(err)
}
}
}, 200)
}
})
...@@ -5,7 +5,6 @@ import { ...@@ -5,7 +5,6 @@ import {
ceil ceil
} from "@/utils/createRound.js" } from "@/utils/createRound.js"
import * as Config from "@/config/constant"
// 格式化时间 yyyy-MM-dd HH:mm:ss // 格式化时间 yyyy-MM-dd HH:mm:ss
const timeFormat = (value, fmt = "yyyy-MM-dd HH:mm:ss", defValue = "- -") => { const timeFormat = (value, fmt = "yyyy-MM-dd HH:mm:ss", defValue = "- -") => {
...@@ -85,396 +84,9 @@ const percentageFormat = (value, digits = 2, method = "round", defReturn = '- -' ...@@ -85,396 +84,9 @@ const percentageFormat = (value, digits = 2, method = "round", defReturn = '- -'
return defReturn return defReturn
} }
// 小区管理人员
const blockManagersFormat = (roleData, type, defReturn = "- -") => {
const roleType = Config.GetBlockRoleTypeFromString(type)
if (roleData) {
const list = roleData[roleType]
if (list && Array.isArray(list)) {
return list.map(item => {
return item.realName
})
.filter((item, index, arr) => {
return !!item && arr.indexOf(item, 0) === index
}).join('、') || defReturn
}
}
return defReturn
}
// 事项类型
const matterTypeFormat = (type, defReturn = "- -") => {
return Config.GetMatterTypeString(type) || defReturn
}
const matterStatusFormat = (data, isCurrentBlockOnlyTemporal) => {
function timeFormat(param) {
return param < 10 ? '0' + param : param
}
function timeoutCountdown(endTime) {
const now = new Date().getTime()
if (now > endTime) {
return ""
}
let time = (endTime - now) / 1000
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt((time % (60 * 60 * 24)) / 3600);
let min = parseInt(((time % (60 * 60 * 24)) % 3600) / 60);
let sec = parseInt(((time % (60 * 60 * 24)) % 3600) % 60);
// let retTime = ""
// if (day > 0) {
// retTime += `${day}天`
// }
// if (hou > 0 || !!retTime){
// retTime += `${timeFormat(hou)}时`;
// }
// if (min > 0 || !!retTime) {
// retTime += `${timeFormat(min)}分`
// }
// retTime += `${timeFormat(sec)}秒`
// return retTime
if (day > 0) {
return `${day}${timeFormat(hou)}时`;
} else if (hou > 0) {
return `${timeFormat(hou)}${timeFormat(min)}分`;
} else {
return `${timeFormat(min)}${timeFormat(sec)}秒`;
}
}
const {
status,
matterType,
ownerStartTime,
ownerEndTime,
memberStartTime,
memberEndTime
} = data || {}
const defReturn = "- -"
if (status != null) {
const myStatus = Number(status)
if (myStatus === Config.MatterStatusOwnerCode.ownerUnStart) {
const str = timeoutCountdown(ownerStartTime)
return str ? str + (isCurrentBlockOnlyTemporal ? "后临管确认开始" : "后业委会投票开始") : defReturn
} else if (myStatus === Config.MatterStatusOwnerCode.ownerInProgress) {
const str = timeoutCountdown(ownerEndTime)
return str ? str + (isCurrentBlockOnlyTemporal ? "后临管确认结束" : "后业委会投票结束") : defReturn
} else if (myStatus === Config.MatterStatusOwnerCode.memberUnStart) {
const str = timeoutCountdown(memberStartTime)
return str ? str + "后居民投票开始" : defReturn
} else if (myStatus === Config.MatterStatusOwnerCode.memberInProgress) {
const str = timeoutCountdown(memberEndTime)
return str ? str + "后居民投票结束" : defReturn
} else if (myStatus === Config.MatterStatusOwnerCode.communityInProgress) {
return "社区待审"
} else if (myStatus === Config.MatterStatusOwnerCode.managementInProgress) {
return "物管办待审"
} else if (myStatus === Config.MatterStatusOwnerCode.communityRefuse) {
return "未通过,事项终止"
} else if (myStatus === Config.MatterStatusOwnerCode.managementRefuse) {
return "未通过,事项终止"
} else if (myStatus === Config.MatterStatusOwnerCode.refuse) {
return "未通过,事项终止"
} else if (myStatus === Config.MatterStatusOwnerCode.end) {
const myMatterType = String(matterType)
if (myMatterType === Config.MatterType.vote) {
return "投票已结束"
} else if (myMatterType === Config.MatterType.letter) {
const { isLetters = false } = data || {}
return isLetters ? "已回函" : "待回函"
} else if (myMatterType === Config.MatterType.rectification) {
const { isAccept = false } = data || {}
return isAccept ? "物业已接收" : "物业待接收"
}
return "已发布"
}
}
return defReturn
}
const matterVoteResultOptionIndexFommat = (index) => {
const indexList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', "I", 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
if (index < 0 || index > 25) {
index = 0
}
return indexList[index]
}
const cmtmgmtStatusFormat = (data) => {
function timeFormat(param) {
return param < 10 ? '0' + param : param
}
function timeoutCountdown(endTime) {
const now = new Date().getTime()
if (now > endTime) {
return ""
}
let time = (endTime - now) / 1000
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt((time % (60 * 60 * 24)) / 3600);
let min = parseInt(((time % (60 * 60 * 24)) % 3600) / 60);
let sec = parseInt(((time % (60 * 60 * 24)) % 3600) % 60);
if (day > 0) {
return `${day}${timeFormat(hou)}时`;
} else if (hou > 0) {
return `${timeFormat(hou)}${timeFormat(min)}分`;
} else {
return `${timeFormat(min)}${timeFormat(sec)}秒`;
}
}
const {
phase,
status,
statusDesc,
timerEndTime
} = data || {}
const defReturn = "- -"
if (status != null) {
const myStatus = Number(status)
if (phase == Config.PHASE_STATUS.TwoStage) {
if (myStatus === Config.TWO_STAGE_STATUS.naming.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后联名结束' : defReturn
} else if (myStatus === Config.TWO_STAGE_STATUS.renPending.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后报名结束' : defReturn
} else if (myStatus === Config.TWO_STAGE_STATUS.renName.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后报名开始' : defReturn
} else {
return statusDesc
}
}else if(phase == Config.PHASE_STATUS.FiveStage){
if (myStatus === Config.FIVE_STAGE_STATUS.naming.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后联名结束' : defReturn
} else if (myStatus === Config.FIVE_STAGE_STATUS.renPending.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后报名结束' : defReturn
} else if (myStatus === Config.FIVE_STAGE_STATUS.renName.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后报名开始' : defReturn
} else {
return statusDesc
}
}else if(phase == Config.PHASE_STATUS.SevenStage){
if (myStatus === Config.SEVEN_STAGE_STATUS.voting.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后投票结束' : defReturn
}else if (myStatus === Config.SEVEN_STAGE_STATUS.noticePass.num) {
const str = timeoutCountdown(timerEndTime)
return str ? str + '后投票开始' : defReturn
} else {
return statusDesc
}
} else {
return statusDesc
}
}
return defReturn
}
const title = (value) => {
switch (value) {
case 'D11':
return '业委会选举办法草案'
case 'DF01':
return '业委会选举办法草案'
case 'D12':
return '业委会选举办法公示'
case 'D13':
return '业委会选举办法公示'
case 'DF11':
return '业委会选举办法公示'
case 'D14':
return '业委会选举办法的公示'
case 'D21':
return '管理规约草案'
case 'DF02':
return '管理规约草案'
case 'D22':
return '管理规约公示'
case 'D23':
return '管理规约公示'
case 'D24':
return '管理规约的公示'
case 'DF12':
return '管理规约编制'
case 'D31':
return '议事规则草案'
case 'DF03':
return '议事规则草案'
case 'D32':
return '议事规则公示'
case 'D33':
return '议事规则公示'
case 'D34':
return '议事规则的公示'
case 'DF13':
return '议事规则编制'
case 'D41':
return '业主大会召开方案草案'
case 'DF04':
return '业主大会召开方案草案'
case 'D42':
return '业主大会召开方案公示'
case 'D43':
return '业主大会召开方案公示'
case 'D44':
return '业主大会召开方案的公示'
case 'DF14':
return '业主大会召开方案编制'
case 'D51':
return '业主大会费用预算草案'
case 'DF05':
return '业主大会费用预算草案'
case 'D52':
return '业主大会费用预算公示'
case 'D53':
return '业主大会费用预算公示'
case 'D54':
return '业主大会费用预算的公示'
case 'DF15':
return '业主大会费用预算编制'
case 'D61':
return '业主票权草案'
case 'DF06':
return '业主票权草案'
case 'D62':
return '业主票权公示'
case 'D63':
return '业主票权公示'
case 'D64':
return '业主票权的公示'
case 'DF16':
return '业主票权编制'
}
}
//第四文件公示事项状态
const p4status = (value) => {
switch (value) {
case '10':
return '待草拟'
case '11':
return '商议中'
case '12':
return '异议待修正'
case '13':
return '商议完成待检查'
case '14':
return '待公示'
case '15':
return '检查未过,待修改'
case '16':
return '待检查'
case '17':
return '已公示'
case '88':
return '已公示'
}
}
//第六通知/公示事项状态
const p6status = (value) => {
switch (value) {
case '0':
return '待起草'
case '1':
return '待检查'
case '2':
return '检查未过,待修改'
case '3':
return '待检查'
case '4':
return '推选中'
case '41':
return '推选中'
case '5':
return '推选结束,待审核'
case '6':
return '推选完成,待公示'
case '61':
return '检查未过,待修改'
case '7':
return '待检查'
case '70':
return '业委会候选人已公示'
case '8':
return '业委会候选人已确定'
case '99':
return '公示期内终止'
}
}
//第七通知公示事项状态
const p7status = (value) => {
switch (value) {
case '0':
return '待起草'
case '1':
return '待检查'
case '2':
return '检查未过,待修改'
case '3':
return '待投票开始'
case '4':
return '待投票结束'
case '5':
return '投票结束待公示'
case '6':
return '待检查'
case '7':
return '检查未过,待修改'
case '8':
return '业委会成员已公示'
case '9':
return '业委会成员已确定'
case '99':
return '公示期内终止'
case '91':
return '双过半人数不足7人, 选举失败'
}
}
//第八通知公示事项状态
const p8status = (value) => {
switch (value) {
case '0':
return '待发起'
case '1':
return '投票中'
case '11':
return '投票中'
case '2':
return '待社区确认'
case '3':
return '待公示'
case '4':
return '待检查'
case '5':
return '检查未过,待修改'
case '6':
return '业委会主任已公示'
}
}
export default { export default {
timeFormat, timeFormat,
numberFormat, numberFormat,
percentageFormat, percentageFormat,
blockManagersFormat,
matterTypeFormat,
matterStatusFormat,
cmtmgmtStatusFormat,
matterVoteResultOptionIndexFommat,
title,
p4status,
p6status,
p7status,
p8status
} }
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<el-form-item label="验证码:"> <el-form-item label="验证码:">
<div class="y-center"> <div class="y-center">
<el-input <el-input
v-model="search.validate" v-model="search.captcha"
placeholder="请输入验证码" placeholder="请输入验证码"
class="w160" class="w160"
></el-input> ></el-input>
...@@ -121,8 +121,7 @@ export default { ...@@ -121,8 +121,7 @@ export default {
data() { data() {
return { return {
captchaPath: "", captchaPath: "",
uuid: "", search: { code: "", captcha: "", uuid: "" },
search: { code: "", validate: "" },
searchCodeShow: "", searchCodeShow: "",
showResult: false, showResult: false,
result: null, result: null,
...@@ -164,9 +163,9 @@ export default { ...@@ -164,9 +163,9 @@ export default {
methods: { methods: {
// 获取验证码 // 获取验证码
getCaptcha() { getCaptcha() {
this.uuid = getUUID(); this.search.uuid = getUUID();
const query = { const query = {
uuid: this.uuid, uuid: this.search.uuid,
}; };
this.$api.getCaptcha(query).then((res) => { this.$api.getCaptcha(query).then((res) => {
console.log(res, 'res'); console.log(res, 'res');
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="search-content"> <div class="search-content">
<div class="title">GLN查询</div> <div class="title">GLN查询</div>
<div class="body"> <div class="body">
<div style="padding-top:20px"> <div style="padding-top: 20px">
<el-form label-position="left" label-width="180px" :model="search"> <el-form label-position="left" label-width="200px" :model="search">
<el-form-item label="参与方位置编码(GLN)查询:"> <el-form-item label="参与方位置编码(GLN)查询:">
<el-input <el-input
v-model="search.code" v-model="search.code"
...@@ -15,17 +15,17 @@ ...@@ -15,17 +15,17 @@
<el-form-item label="验证码:"> <el-form-item label="验证码:">
<div class="y-center"> <div class="y-center">
<el-input <el-input
v-model="search.validate" v-model="search.captcha"
placeholder="请输入验证码" placeholder="请输入验证码"
class="w160" class="w160"
></el-input> ></el-input>
<div class="validate-code"> <div class="validate-code">
<img src="../../assets/image/validate.jpg" alt="" /> <img :src="captchaPath" @click="getCaptcha()" alt="" />
</div> </div>
<el-button <el-button
style="margin-left:40px" style="margin-left: 40px"
type="primary" type="primary"
@click="handleSearch" @click="handleSearch"
>查询</el-button >查询</el-button
...@@ -53,20 +53,15 @@ ...@@ -53,20 +53,15 @@
<div class="content-wrapper"> <div class="content-wrapper">
<img src="./img/query-external-barcode.png" align="right" alt="" /> <img src="./img/query-external-barcode.png" align="right" alt="" />
<p> <p>
1、参与方位置编码(Global Location Number)是对参与供应链等活动的法律实体、功能实体和物理实体进行唯一标识的代码,用13位数字表示,主要应用于条码符号自动识别与数据采集和电子数据交换 1、参与方位置编码(Global Location
Number)是对参与供应链等活动的法律实体、功能实体和物理实体进行唯一标识的代码,用13位数字表示,主要应用于条码符号自动识别与数据采集和电子数据交换
</p> </p>
<p> <p>
2、当用条码符号表示参与方位置编码时,应与参与方位置编码应用标识符一起使用,如左图中的"410"代表"交货地"。 2、当用条码符号表示参与方位置编码时,应与参与方位置编码应用标识符一起使用,如左图中的"410"代表"交货地"。
</p> </p>
<p> <p>注:</p>
注: <p>3、法律实体是指合法存在的机构,如:供应商、客户、银行、承运商等。</p>
</p> <p>4、功能实体是指法律实体内的具体的部门,如:某公司的财务部。</p>
<p>
3、法律实体是指合法存在的机构,如:供应商、客户、银行、承运商等。
</p>
<p>
4、功能实体是指法律实体内的具体的部门,如:某公司的财务部。
</p>
<p> <p>
5、物理实体是指具体的位置,如:建筑物的某个房间、仓库或仓库的某个门、交货地等。 5、物理实体是指具体的位置,如:建筑物的某个房间、仓库或仓库的某个门、交货地等。
</p> </p>
...@@ -76,21 +71,45 @@ ...@@ -76,21 +71,45 @@
</template> </template>
<script> <script>
import { getUUID } from "@/utils/utils";
export default { export default {
data() { data() {
return { return {
search: { code: "", validate: "" }, captchaPath: '',
search: { code: "", captcha: "", type: "GLN", requestedLanguage: "en", uuid: ''},
searchCodeShow: "", searchCodeShow: "",
showResult: false, showResult: false,
result: null, result: null,
}; };
}, },
created() {
this.getCaptcha();
},
methods: { methods: {
handleSearch() { // 获取验证码
getCaptcha() {
this.search.uuid = getUUID();
const query = {
uuid: this.search.uuid,
};
this.$api.getCaptcha(query).then((res) => {
console.log(res, 'res');
this.captchaPath = window.URL.createObjectURL(res.body);
});
},
async handleSearch() {
this.searchCodeShow = this.search.code; this.searchCodeShow = this.search.code;
this.showResult = true; this.showResult = true;
if (this.search.code === "1") { const params = {...this.search};
this.result = {}; const searchGlnRes =
await this.$api.search.searchGln(params);
const { returnCode, data } = searchGlnRes;
console.log(searchGlnRes, 'searchGlnRes');
if (returnCode === "0") {
this.result = data;
} else {
this.result = null;
} }
}, },
}, },
......
import {
BlockRoleType,
BlockRoleNameFromType,
MatterType,
MatterStatusOwnerCode
} from "@/config/constant.js"
const getters = { const getters = {
// 用户id // 用户id
userId: state => { userId: state => {
...@@ -34,109 +27,6 @@ const getters = { ...@@ -34,109 +27,6 @@ const getters = {
const { userInfo } = state const { userInfo } = state
return Number(userInfo.roleId) return Number(userInfo.roleId)
}, },
userRoleName: state => {
const { userInfo } = state
return BlockRoleNameFromType(Number(userInfo.roleId))
},
isLoggedAdmin: state => {
const { userInfo } = state
return Number(userInfo.roleId) === BlockRoleType.admin
},
isCurrentBlockOnlyTemporal: state => {
const { userInfo } = state
return userInfo.blockName === '旭日爱上城6区'
},
isElementPermission: state => (value, data = null) => {
const { userInfo } = state
const roleId = Number(userInfo.roleId)
// const roleId = BlockRoleType.comMember
// 设置网格管理员
if (value === 'block_set_grid_manager') {
return roleId === BlockRoleType.admin
}
// 设置业委会委员、临管人员、会计、物业 需要管理员权限
if (value === 'block_set_comMember'
|| value === 'block_set_community'
|| value === 'block_set_management'
|| value === 'block_set_temporal'
|| value === 'block_set_accountant'
|| value === 'block_set_servant') {
if (roleId !== BlockRoleType.admin) {
return false
}
// 仅旭日爱上城6区需要设置临管人员
const { name } = data || {}
const block_xrasc6 = '旭日爱上城6区'
if (value === 'block_set_temporal') {
return name === block_xrasc6
}
if (value === 'block_set_comMember') {
return name !== block_xrasc6
}
return true
}
// 会计有添加账号权限
if (value === 'account_add_balance') {
return roleId === BlockRoleType.accountant
}
// 事项
if (value === 'matter_create') {
return (
roleId === BlockRoleType.comMember ||
roleId === BlockRoleType.temporal
)
}
if (value === 'matter_create_rectification' || value === 'matter_create_letter') {
return (
roleId === BlockRoleType.comMember ||
roleId === BlockRoleType.temporal
)
}
if (value === 'matter_create_vote'
|| value === 'matter_create_vote-result'
|| value === 'matter_create_announce') {
return (
roleId === BlockRoleType.comMember ||
roleId === BlockRoleType.temporal
)
}
if (value === 'matter_action_audit_approve' || value === 'matter_action_audit_reject') {
// 审核仅社区和物管办
const { status } = data || {}
const myStatus = Number(status)
return (roleId === BlockRoleType.community && myStatus === MatterStatusOwnerCode.communityInProgress) ||
(roleId === BlockRoleType.management && myStatus === MatterStatusOwnerCode.managementInProgress)
}
if (value === 'matter_action_reply_letter') {
// 已发布的公函,业委会需要进行回函
const { matterType, status, isLetters } = data || {}
const myMatterType = String(matterType)
const myStatus = Number(status)
return (
myMatterType === MatterType.letter &&
myStatus === MatterStatusOwnerCode.end &&
!isLetters &&
(roleId === BlockRoleType.comMember || roleId === BlockRoleType.temporal)
)
}
if (value === 'matter_action_accept_rectification') {
// 已发布的整改单,物业需要进行接收整改
const { matterType, status, isAccept } = data || {}
const myMatterType = String(matterType)
const myStatus = Number(status)
return (
myMatterType === MatterType.rectification &&
myStatus === MatterStatusOwnerCode.end &&
!isAccept &&
roleId === BlockRoleType.servant
)
}
if (value === 'matter_action_edit_tags') {
return false
}
return false
}
} }
export default getters export default getters
\ No newline at end of file
...@@ -10,10 +10,6 @@ const state = { ...@@ -10,10 +10,6 @@ const state = {
userInfo: storage.get("userInfo") || {}, userInfo: storage.get("userInfo") || {},
// 登录用户菜单列表 // 登录用户菜单列表
userMenus: storage.get("userMenus") || [], userMenus: storage.get("userMenus") || [],
// 账号交易类型列表
financeTypeList: storage.get("financeTypeList") || [],
// 当前所有小区的列表数据
allBlockList: storage.get("allBlockList") || [],
} }
export default state export default state
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment