Browse Source

完善登录

master
guoxing 11 months ago
parent
commit
7a08b39096
  1. 112
      src/api/Common/dictcommons.js
  2. 4
      src/api/system/userManage/index.js
  3. 9
      src/layout/components/Navbar.vue
  4. 44
      src/views/login/login.vue
  5. 35
      src/views/purchase/purchaseOrder/purchaseOrderAdd.vue
  6. 24
      src/views/purchase/purchaseOrder/purchaseOrderInfo.vue
  7. 215
      src/views/system/menuManage/menuManage.vue
  8. 4
      src/views/system/userManage/userManageAdd.vue
  9. 5
      src/views/system/userManage/userManageList.vue

112
src/api/Common/dictcommons.js

@ -34,15 +34,87 @@ export function fetchBySid(sid) {
}) })
} }
// 根据当前登录用户sid获取本分公司下的销售部门和销售专员
export function selectOrgList(data) {
return request({
url: '/portal/v1/sysorganization/selectOrgList',
method: 'get',
params: data
})
}
// 当前用户创建申请时判断该用户是否有该菜单的操作权限
export function selectHaveMessage(data) {
return request({
url: '/portal/v1/sysuser/selectHaveMessage ',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 根据当前登录用户的角色获取菜单分页列表页面右上角按钮的隐藏
export function getButtonPermissions(data) {
return request({
url: '/portal/v1/sysfunction/getButtonPermissions',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 根据当前登录用户的全路径查询相应部门下的所有人 // 根据当前登录用户的全路径查询相应部门下的所有人
export function selAllByOrgSidPath(data) { export function selAllByOrgSidPath(data) {
return request({ return request({
url: '/portal/v1/sysstafforg/selAllByOrgSidPath', url: '/oms/apiadmin/sysstafforg/selAllByOrgSidPath',
method: 'post', method: 'post',
params: data params: data
}) })
} }
// 分公司全路径sid获取工种
export function getServiceType(data) {
return request({
url: '/as/v1/AsServiceItem/getServiceType',
method: 'get',
params: data
})
}
// 分公司全路径sid获取科目
export function selSubjectInfo(data) {
return request({
url: '/as/v1/asservicepackage/selSubjectInfo',
method: 'get',
params: data
})
}
// 分公司全路径sid获取班组
export function getGroupList(data) {
return request({
url: '/as/v1/asservicegroup/getGroupList',
method: 'post',
params: data
})
}
// 查询分页列表 -- 客户列表
export function customerListPage(params) {
return request({
url: '/yxtcrm/apiadmin/v1/crmcustomer/customerListPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 获取省 // 获取省
export function getProvince() { export function getProvince() {
return request({ return request({
@ -67,10 +139,31 @@ export function getCounty(data) {
}) })
} }
// 获取供应商信息
export function choiceSupplierInfo(data) {
return request({
url: '/oms/apiadmin/supplierinfo/choiceSupplierInfo',
method: 'get',
params: data
})
}
// 查询分页列表 -- 商品列表
export function chooseproducts(params) {
return request({
url: '/yxtbase/apiadmin/base/basegoodssku/getGoodsListPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 查询所有仓库 // 查询所有仓库
export function getWareHouse(params) { export function getWarehouses(params) {
return request({ return request({
url: '/oms/apiadmin/warehouseinfo/getWareHouse', url: '/oms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
@ -78,3 +171,16 @@ export function getWareHouse(params) {
} }
}) })
} }
// 根据仓库查询库位
export function getWarehouseareas(data) {
return request({
url: '/oms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
params: data,
headers: {
'Content-Type': 'application/json'
}
})
}

4
src/api/system/userManage/index.js

@ -30,7 +30,7 @@ export function userAdd(data) {
// 初始化 用户 // 初始化 用户
export function initUserInfo(data) { export function initUserInfo(data) {
return request({ return request({
url: '/wms/apiadmin/sysstaffinfo/fetchBySid/' + data.sid, url: '/oms/apiadmin/sysstaffinfo/fetchBySid/' + data.sid,
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {
@ -128,7 +128,7 @@ export function roleList(data) {
// 查询部门列表 // 查询部门列表
export function orgList(data) { export function orgList(data) {
return request({ return request({
url: '/oms/apiadmin/sysorganization/list', url: '/oms/apiadmin/sysorganization/list/' + data,
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {

9
src/layout/components/Navbar.vue

@ -6,7 +6,7 @@
<!-- <h3 class="breadcrumb-container">汇融银行供应链贷后监管平台</h3> --> <!-- <h3 class="breadcrumb-container">汇融银行供应链贷后监管平台</h3> -->
<div class="right-menu"> <div class="right-menu">
<!-- <p>{{Orgname}} {{departmentName}} 欢迎, {{name}}</p>--> <!-- <p>{{Orgname}} {{departmentName}} 欢迎, {{name}}</p>-->
<p>{{Orgname}}欢迎您{{pNameAndDepartmentNameAndPostName}} {{name}}</p> <p>欢迎您{{pNameAndDepartmentNameAndPostName}} - {{defaultRoleName}} - {{name}}</p>
<!-- <img src="@/assets/images/info.png"> --> <!-- <img src="@/assets/images/info.png"> -->
<!-- <img src="@/assets/images/dy.png" @click="logout"> --> <!-- <img src="@/assets/images/dy.png" @click="logout"> -->
<span class="backToHome" @click="logout"><i class="el-icon-back"></i>退出登录</span> <span class="backToHome" @click="logout"><i class="el-icon-back"></i>退出登录</span>
@ -23,6 +23,7 @@
Orgname: '', Orgname: '',
departmentName: '', departmentName: '',
name: '', name: '',
defaultRoleName: '',
year: '', year: '',
pNameAndDepartmentNameAndPostName: '' pNameAndDepartmentNameAndPostName: ''
} }
@ -30,8 +31,9 @@
mounted() { mounted() {
this.Orgname = window.sessionStorage.getItem('orgName') this.Orgname = window.sessionStorage.getItem('orgName')
this.departmentName = window.sessionStorage.getItem('departmentName') this.departmentName = window.sessionStorage.getItem('departmentName')
this.name = window.sessionStorage.getItem('userName') this.name = window.sessionStorage.getItem('name')
this.pNameAndDepartmentNameAndPostName = window.sessionStorage.getItem('defaultOrgPathName') this.defaultRoleName = window.sessionStorage.getItem('defaultRoleName')
this.pNameAndDepartmentNameAndPostName = window.sessionStorage.getItem('pNameAndDepartmentNameAndPostName')
var nowDate = new Date() var nowDate = new Date()
this.year = nowDate.getFullYear() this.year = nowDate.getFullYear()
}, },
@ -43,7 +45,6 @@
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
window.sessionStorage.clear() window.sessionStorage.clear()
this.$router.push({ this.$router.push({
path: '/login' path: '/login'
}) })

44
src/views/login/login.vue

@ -15,9 +15,11 @@
<div class="main-right-table"> <div class="main-right-table">
<div :class="tableIndex == 1 ? 'main-right-table-text1' : 'main-right-table-text3'" @click="tableClick(1)"> <div style="cursor:pointer;" :class="tableIndex == 1 ? 'main-right-table-text1' : 'main-right-table-text3'"
@click="tableClick(1)">
密码登录</div> 密码登录</div>
<div :class="tableIndex == 2 ? 'main-right-table-text2' : 'main-right-table-text4'" @click="tableClick(2)"> <div style="cursor:pointer;" :class="tableIndex == 2 ? 'main-right-table-text2' : 'main-right-table-text4'"
@click="tableClick(2)">
验证码登录</div> 验证码登录</div>
</div> </div>
@ -49,9 +51,9 @@
<div class="main-right-bom-right"> <div class="main-right-bom-right">
<span @click="forgetClick">忘记密码</span> <span @click="forgetClick" style="cursor:pointer;">忘记密码</span>
<div style="margin-left: 8px;margin-right: 8px;width: 1px; height: 18px;background: #999;"></div> <div style="margin-left: 8px;margin-right: 8px;width: 1px; height: 18px;background: #999;"></div>
<span @click="registerClick">去注册</span> <span @click="registerClick" style="cursor:pointer;">去注册</span>
</div> </div>
@ -216,7 +218,8 @@
check: false, check: false,
registerInfo: { registerInfo: {
mobile: '', mobile: '',
userSid: "" userSid: "",
sourceSid: 'd936f1ba-03c3-11ec-bf08-48452053aa44', // oms sid
}, },
loginForm: { loginForm: {
userName: '', userName: '',
@ -509,19 +512,21 @@
loading.close() loading.close()
window.sessionStorage.setItem('token', response.data.token) window.sessionStorage.setItem('token', response.data.token)
window.sessionStorage.setItem('userSid', response.data.sid)
window.sessionStorage.setItem('staffSid', response.data.staffSid) window.sessionStorage.setItem('staffSid', response.data.staffSid)
window.sessionStorage.setItem('userSid', response.data.sid)
window.sessionStorage.setItem('name', response.data.name)
window.sessionStorage.setItem('userName', response.data.userName) window.sessionStorage.setItem('userName', response.data.userName)
window.sessionStorage.setItem('orgName', response.data.orgName)
window.sessionStorage.setItem('mobile', response.data.mobile) window.sessionStorage.setItem('mobile', response.data.mobile)
window.sessionStorage.setItem('orgName', response.data.orgName)
window.sessionStorage.setItem('orgSid', response.data.orgSid) window.sessionStorage.setItem('orgSid', response.data.orgSid)
window.sessionStorage.setItem('departmentName', response.data.departmentName) window.sessionStorage.setItem('defaultDeptName', response.data.defaultDeptName)
window.sessionStorage.setItem('departmentSid', response.data.departmentSid) window.sessionStorage.setItem('defaultDeptSid', response.data.defaultDeptSid)
window.sessionStorage.setItem('defaultOrgPath', response.data.orgSid) window.sessionStorage.setItem('defaultRoleName', response.data.defaultRoleName)
window.sessionStorage.setItem('orgNamePath', response.data.orgNamePath) window.sessionStorage.setItem('defaultRoleSid', response.data.defaultRoleSid)
window.sessionStorage.setItem('orgSidPath', response.data.orgSidPath) window.sessionStorage.setItem('orgSidPath', response.data.orgSidPath)
window.sessionStorage.setItem('defaultOrgPath', response.data.defaultOrgPath)
window.sessionStorage.setItem('defaultOrgPathName', response.data.defaultOrgPathName)
window.sessionStorage.setItem('pNameAndDepartmentNameAndPostName', response.data window.sessionStorage.setItem('pNameAndDepartmentNameAndPostName', response.data
.pNameAndDepartmentNameAndPostName) .pNameAndDepartmentNameAndPostName)
} }
@ -557,17 +562,20 @@
loading.close() loading.close()
window.sessionStorage.setItem('token', response.data.token) window.sessionStorage.setItem('token', response.data.token)
window.sessionStorage.setItem('userSid', response.data.sid)
window.sessionStorage.setItem('staffSid', response.data.staffSid) window.sessionStorage.setItem('staffSid', response.data.staffSid)
window.sessionStorage.setItem('userSid', response.data.sid)
window.sessionStorage.setItem('name', response.data.name)
window.sessionStorage.setItem('userName', response.data.userName) window.sessionStorage.setItem('userName', response.data.userName)
window.sessionStorage.setItem('orgName', response.data.orgName)
window.sessionStorage.setItem('mobile', response.data.mobile) window.sessionStorage.setItem('mobile', response.data.mobile)
window.sessionStorage.setItem('orgName', response.data.orgName)
window.sessionStorage.setItem('orgSid', response.data.orgSid) window.sessionStorage.setItem('orgSid', response.data.orgSid)
window.sessionStorage.setItem('departmentName', response.data.departmentName) window.sessionStorage.setItem('defaultDeptName', response.data.defaultDeptName)
window.sessionStorage.setItem('departmentSid', response.data.departmentSid) window.sessionStorage.setItem('defaultDeptSid', response.data.defaultDeptSid)
window.sessionStorage.setItem('defaultOrgPath', response.data.orgSid) window.sessionStorage.setItem('defaultRoleName', response.data.defaultRoleName)
window.sessionStorage.setItem('orgNamePath', response.data.orgNamePath) window.sessionStorage.setItem('defaultRoleSid', response.data.defaultRoleSid)
window.sessionStorage.setItem('orgSidPath', response.data.orgSidPath) window.sessionStorage.setItem('orgSidPath', response.data.orgSidPath)
window.sessionStorage.setItem('defaultOrgPath', response.data.defaultOrgPath)
window.sessionStorage.setItem('defaultOrgPathName', response.data.defaultOrgPathName)
window.sessionStorage.setItem('pNameAndDepartmentNameAndPostName', response.data window.sessionStorage.setItem('pNameAndDepartmentNameAndPostName', response.data
.pNameAndDepartmentNameAndPostName) .pNameAndDepartmentNameAndPostName)
} }

35
src/views/purchase/purchaseOrder/purchaseOrderAdd.vue

@ -43,7 +43,8 @@
<div class="span-sty"><span class="must">*</span> 供应商</div> <div class="span-sty"><span class="must">*</span> 供应商</div>
<el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable <el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable
placeholder="请选择供应商" class="addinputw addinputInfo" @change="supplierNameSelect"> placeholder="请选择供应商" class="addinputw addinputInfo" @change="supplierNameSelect">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.supplierName" :value="item.sid"> <el-option v-for="(item,index ) in supplierList" :key="index" :label="item.supplierName"
:value="item.sid">
</el-option> </el-option>
</el-select></el-form-item> </el-select></el-form-item>
</el-col> </el-col>
@ -52,7 +53,7 @@
<el-form-item prop="wareHouseName"> <el-form-item prop="wareHouseName">
<el-select v-model="formobj.wareHouseName" placeholder="请选择收货仓库" class="addinputw addinputInfo" <el-select v-model="formobj.wareHouseName" placeholder="请选择收货仓库" class="addinputw addinputInfo"
@change="selectWarehouseName"> @change="selectWarehouseName">
<el-option v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName" <el-option v-for="(item,index ) in warehouseList" :key="index" :label="item.warehouseName"
:value="item.sid" /> :value="item.sid" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -62,7 +63,7 @@
<el-form-item prop="purchaserName"> <el-form-item prop="purchaserName">
<el-select v-model="formobj.purchaserName" filterable clearable placeholder="请选择业务员" <el-select v-model="formobj.purchaserName" filterable clearable placeholder="请选择业务员"
class="addinputw addinputInfo" @change="allOrgperSelect"> class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid"> <el-option v-for="(item,index ) in allOrgperList" :key="index" :label="item.name" :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
@ -83,7 +84,7 @@
<el-form-item prop="currencyValue"> <el-form-item prop="currencyValue">
<el-select v-model="formobj.purchaseBillAmount.currencyValue" placeholder="请选择货币类别" <el-select v-model="formobj.purchaseBillAmount.currencyValue" placeholder="请选择货币类别"
class="addinputw addinputInfo" @change="selectCurrency"> class="addinputw addinputInfo" @change="selectCurrency">
<el-option v-for="(item,i) in currencyTypeList" :key="item.dictKey" :label="item.dictValue" <el-option v-for="(item,index) in currencyTypeList" :key="index" :label="item.dictValue"
:value="item.dictKey" /> :value="item.dictKey" />
</el-option> </el-option>
</el-select> </el-select>
@ -103,7 +104,7 @@
<el-form-item prop="freightShareTypeValue"> <el-form-item prop="freightShareTypeValue">
<el-select v-model="formobj.purchaseBillAmount.freightShareTypeValue" placeholder="请选择分摊方式" <el-select v-model="formobj.purchaseBillAmount.freightShareTypeValue" placeholder="请选择分摊方式"
class="addinputw addinputInfo" @change="selectFreightShareType"> class="addinputw addinputInfo" @change="selectFreightShareType">
<el-option v-for="item in shareTypeList" :key="item.dictKey" :label="item.dictValue" <el-option v-for="(item,index ) in shareTypeList" :key="index" :label="item.dictValue"
:value="item.dictKey" /> :value="item.dictKey" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -113,7 +114,7 @@
<el-form-item prop="settleAccountValue"> <el-form-item prop="settleAccountValue">
<el-select v-model="formobj.purchaseBillAmount.settleAccountValue" filterable clearable <el-select v-model="formobj.purchaseBillAmount.settleAccountValue" filterable clearable
placeholder="请选择结算账户" class="addinputw addinputInfo" @change="selectSettleAccount"> placeholder="请选择结算账户" class="addinputw addinputInfo" @change="selectSettleAccount">
<el-option v-for="item in settlementList" :key="item.dictKey" :label="item.dictValue" <el-option v-for="(item,index ) in settlementList" :key="index" :label="item.dictValue"
:value="item.dictKey" /> :value="item.dictKey" />
</el-option> </el-option>
</el-select> </el-select>
@ -136,7 +137,7 @@
<el-form-item prop="otherShareTypeValue"> <el-form-item prop="otherShareTypeValue">
<el-select v-model="formobj.purchaseBillAmount.otherShareTypeValue" placeholder="请选择分摊方式" <el-select v-model="formobj.purchaseBillAmount.otherShareTypeValue" placeholder="请选择分摊方式"
class="addinputw addinputInfo" @change="selectOtherShareType"> class="addinputw addinputInfo" @change="selectOtherShareType">
<el-option v-for="item in shareTypeList" :key="item.dictKey" :label="item.dictValue" <el-option v-for="(item,index ) in shareTypeList" :key="index" :label="item.dictValue"
:value="item.dictKey" /> :value="item.dictKey" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -175,7 +176,7 @@
<el-table v-loading="listLoading" :data="formobj.purchaseBillDetailList" border style="width: 100%;"> <el-table v-loading="listLoading" :data="formobj.purchaseBillDetailList" border style="width: 100%;">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> <!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="150"> <el-table-column fixed label="操作" wid align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="deleteGoods(scope.row)">删除</el-button> <el-button type="primary" size="mini" @click="deleteGoods(scope.row)">删除</el-button>
</template> </template>
@ -184,24 +185,24 @@
<el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" /> <el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" />
<el-table-column label="商品规格" prop="goodsSkuOwnSpec" width="150" align="center" /> <el-table-column label="商品规格" prop="goodsSkuOwnSpec" width="150" align="center" />
<el-table-column label="单位" prop="unit" width="120" align="center" /> <el-table-column label="单位" prop="unit" width="120" align="center" />
<el-table-column label="采购数量" align="center" width="180"> <el-table-column label="采购数量" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.count" clearable placeholder="" <el-input v-model="scope.row.count" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" @input="calculation(scope.row)" /> oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" @input="calculation(scope.row)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单价" prop="cost" width="120" align="center" /> <el-table-column label="单价" prop="cost" width="120" align="center" />
<el-table-column label="折扣率(%)" align="center" width="180"> <el-table-column label="折扣率(%)" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.discountRate" clearable placeholder="" <el-input v-model="scope.row.discountRate" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
@input="calculation(scope.row)" /> @input="calculation(scope.row)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="discountPrice" label="折扣单价" width="150" align="center" /> <el-table-column prop="discountPrice" label="折扣单价" width="120" align="center" />
<!-- <el-table-column prop="shareAmount" label="分摊金额" width="150" align="center" /> --> <!-- <el-table-column prop="shareAmount" label="分摊金额" width="150" align="center" /> -->
<el-table-column prop="amount" label="总价" width="120" align="center" /> <el-table-column prop="amount" label="总价" width="120" align="center" />
<el-table-column label="预计到货日期" align="center" width="180"> <el-table-column label="预计到货日期" align="center" min-width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker v-model="scope.row.deliveryDate" type="date" value-format="yyyy-MM-dd" <el-date-picker v-model="scope.row.deliveryDate" type="date" value-format="yyyy-MM-dd"
placeholder="选择日期" /> placeholder="选择日期" />
@ -474,7 +475,7 @@
"goodsSkuOwnSpec": value[i].goodsSkuOwnSpec, "goodsSkuOwnSpec": value[i].goodsSkuOwnSpec,
"unit": value[i].unit, "unit": value[i].unit,
"cost": value[i].cost, "cost": value[i].cost,
"count": "1", "count": "0",
"discountRate": value[i].discountRate, "discountRate": value[i].discountRate,
"discountPrice": "0.00", "discountPrice": "0.00",
"shareAmount": "0.00", "shareAmount": "0.00",
@ -558,6 +559,7 @@
handleReturn(isreload) { handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist') if (isreload === 'true') this.$emit('reloadlist')
this.submitdisabled = false this.submitdisabled = false
this.imgList = []
this.formobj = { this.formobj = {
"sid": "", "sid": "",
"remarks": "", "remarks": "",
@ -627,13 +629,18 @@
}, },
showAdd() { showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init() this.init()
this.title = '【新增】' this.title = '【新增】'
}, },
showEdit(row) { showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init() this.init()
this.title = '【编辑】' this.title = '【编辑】'

24
src/views/purchase/purchaseOrder/purchaseOrderInfo.vue

@ -37,28 +37,28 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 供应商</div> <div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 收货仓库</div> <div class="span-sty">收货仓库</div>
<el-form-item><span class="addinputInfo">{{ formobj.wareHouseName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.wareHouseName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 业务员</div> <div class="span-sty">业务员</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaserName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.purchaserName }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<div class="span-sty"><span class="must">*</span> 银行账号</div> <div class="span-sty">银行账号</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.bankAccount }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.bankAccount }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 货币类别</div> <div class="span-sty">货币类别</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.currencyValue }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.currencyValue }}</span></el-form-item>
</el-col> </el-col>
@ -66,16 +66,16 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 采购运费</div> <div class="span-sty">采购运费</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseBillAmount.freight }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.purchaseBillAmount.freight }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 运费分摊方式</div> <div class="span-sty">运费分摊方式</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.freightShareTypeValue }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.freightShareTypeValue }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 结算账户</div> <div class="span-sty">结算账户</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.settleAccountValue }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.settleAccountValue }}</span></el-form-item>
</el-col> </el-col>
@ -83,25 +83,25 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 其他费用</div> <div class="span-sty">其他费用</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.otherAmountName }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.otherAmountName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 其他费用分摊方式</div> <div class="span-sty">其他费用分摊方式</div>
<el-form-item><span <el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillAmount.otherShareTypeValue }}</span></el-form-item> class="addinputInfo">{{ formobj.purchaseBillAmount.otherShareTypeValue }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 预付金额</div> <div class="span-sty">预付金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseBillAmount.prepayment }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.purchaseBillAmount.prepayment }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty"><span class="must">*</span> 附件</div> <div class="span-sty">附件</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" <el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px"
v-for="(item, index) in formobj.purchaseAppendixList" :key="index" :src="item.url" v-for="(item, index) in formobj.purchaseAppendixList" :key="index" :src="item.url"
:preview-src-list="formobj.purchaseAppendixList" /></el-form-item> :preview-src-list="formobj.purchaseAppendixList" /></el-form-item>

215
src/views/system/menuManage/menuManage.vue

@ -62,14 +62,18 @@
<el-input v-model="scope.row.sortNo" size="mini"/> <el-input v-model="scope.row.sortNo" size="mini"/>
</template> </template>
</el-table-column>--> </el-table-column>-->
<el-table-column prop="pageUrl" width="120" label="类型" align="center" /> <el-table-column prop="menuTypeValue" width="120" label="类型" align="center" />
<el-table-column prop="pageUrl" label="链接地址" align="center" /> <el-table-column prop="pageUrl" label="路由路径" align="center" />
<el-table-column prop="isShow" label="可见性" align="center"> <el-table-column prop="menuUrl" label="路由名称" align="center" />
<el-table-column prop="pageName" label="组件路径" align="center" />
<el-table-column prop="cid" label="权限标识" align="center" />
<el-table-column prop="isShow" label="状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isShow" active-color="#13ce66" inactive-color="#ff4949" active-value="1" <el-switch v-model="scope.row.isShow" active-color="#13ce66" inactive-color="#ff4949" active-value="1"
inactive-value="0" @change="enabledChange(scope.row.isShow,scope.row)" /> inactive-value="0" @change="enabledChange(scope.row.isShow,scope.row)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="sortNo" label="排序" align="center" />
</el-table> </el-table>
</div> </div>
</div> </div>
@ -77,16 +81,35 @@
<!-- 编辑功能信息 --> <!-- 编辑功能信息 -->
<el-dialog :title="dialogTitle + '功能信息'" :visible.sync="editDialog" width="40%"> <el-dialog :title="dialogTitle + '功能信息'" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0"> <table class="e-table" cellspacing="0">
<!-- <tr> <tr>
<td>资源名称</td>
<td>
<el-input v-model="form.sourceName" :disabled="true" style="width:300px" />
</td>
</tr>
<tr>
<td>上级菜单</td> <td>上级菜单</td>
<td> <td>
<el-input v-model="form.pname" :disabled="true" style="width:300px" /> <!-- <el-input v-model="form.pname" :disabled="true" style="width:300px" /> -->
<el-select v-model="form.pname" placeholder="请选择" style="width:300px">
<el-option hidden :key="form.psid" :label="form.pname" :value="form.pname"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true'
:props="defaultProps" @check-change="checkchange" @node-click="departmentClick">
</el-tree>
</el-select>
</td> </td>
</tr> --> </tr>
<tr> <tr>
<td>资源名称</td> <td>类型分类</td>
<td> <td>
<el-input v-model="form.sourceName" :disabled="true" style="width:300px" /> <el-radio-group v-model="editMenuType" @change="menuTypeChangeRadio">
<el-radio :label="'0'">目录</el-radio>
<el-radio :label="'1'">菜单</el-radio>
<el-radio :label="'2'">按钮</el-radio>
</el-radio-group>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -96,36 +119,41 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>菜单路由</td> <td>路由路径</td>
<td> <td>
<el-input v-model="form.menuUrl" /> <el-input v-model="form.menuUrl" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>菜单图片路径</td> <td>路由名称</td>
<td>
<el-input v-model="form.pageUrl" />
</td>
</tr>
<tr>
<td>菜单图片</td>
<td> <td>
<el-input v-model="form.iconUrl" /> <el-input v-model="form.iconUrl" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>前端页面名称</td> <td>组件路径</td>
<td> <td>
<el-input v-model="form.pageName" /> <el-input v-model="form.pageName" />
</td> </td>
</tr> </tr>
<tr> <tr v-show="editMenuType=='2'">
<td>前端页面路径</td> <td>权限标识</td>
<td> <td>
<el-input v-model="form.pageUrl" /> <el-input v-model="form.cid" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>类型分类</td> <td>是否手机端权限</td>
<td> <td>
<el-radio-group v-model="editMenuType" @change="menuTypeChangeRadio"> <el-radio-group v-model="editPhoneFunction" @change="changeRadio4">
<el-radio :label="'1'">目录</el-radio> <el-radio :label="'0'"></el-radio>
<el-radio :label="'2'">菜单</el-radio> <el-radio :label="'1'"></el-radio>
<el-radio :label="'3'">按钮</el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
</tr> </tr>
@ -158,7 +186,7 @@
</el-dialog> </el-dialog>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="新增菜单" name="addrole"> <el-tab-pane label="新增菜单" name="addrole" class="listconadd">
<!-- 添加 --> <!-- 添加 -->
<!--<el-dialog :title="dialogTitle + '菜单管理'" :visible.sync="editDialog" width="40%">--> <!--<el-dialog :title="dialogTitle + '菜单管理'" :visible.sync="editDialog" width="40%">-->
<table class="e-table" cellspacing="0"> <table class="e-table" cellspacing="0">
@ -174,6 +202,32 @@
<el-input v-model="form.sourceName" :disabled="true" style="width:300px" /> <el-input v-model="form.sourceName" :disabled="true" style="width:300px" />
</td> </td>
</tr> </tr>
<tr>
<td>上级菜单</td>
<td>
<!-- <el-tree v-loading="loading" :data="treedata" ref="sourceTree" accordion node-key="sid"
:props="defaultProps" @check-change="checkchange">
</el-tree> -->
<el-select v-model="form.pname" placeholder="请选择" style="width:300px">
<el-option hidden :key="form.psid" :label="form.pname" :value="form.pname"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true'
:props="defaultProps" @check-change="checkchange" @node-click="departmentClick">
</el-tree>
</el-select>
</td>
</tr>
<tr>
<td>类型分类</td>
<td>
<el-radio-group v-model="addMenuType" @change="menuTypeChangeRadio2">
<el-radio :label="'0'">目录</el-radio>
<el-radio :label="'1'">菜单</el-radio>
<el-radio :label="'2'">按钮</el-radio>
</el-radio-group>
</td>
</tr>
<tr> <tr>
<td>菜单名称</td> <td>菜单名称</td>
<td> <td>
@ -181,36 +235,41 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>菜单路由</td> <td>路由路径</td>
<td>
<el-input v-model="form.pageUrl" style="width:300px" />
</td>
</tr>
<tr>
<td>路由名称</td>
<td> <td>
<el-input v-model="form.menuUrl" style="width:300px" /> <el-input v-model="form.menuUrl" style="width:300px" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>菜单图片路径</td> <td>菜单图片</td>
<td> <td>
<el-input v-model="form.iconUrl" style="width:300px" /> <el-input v-model="form.iconUrl" style="width:300px" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>前端页面名称</td> <td>组件路径</td>
<td> <td>
<el-input v-model="form.pageName" style="width:300px" /> <el-input v-model="form.pageName" style="width:300px" />
</td> </td>
</tr> </tr>
<tr> <tr v-show="addMenuType=='2'">
<td>前端页面路径</td> <td>权限标识</td>
<td> <td>
<el-input v-model="form.pageUrl" style="width:300px" /> <el-input v-model="form.cid" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td>类型分类</td> <td>是否手机端权限</td>
<td> <td>
<el-radio-group v-model="addMenuType" @change="menuTypeChangeRadio2"> <el-radio-group v-model="addPhoneFunction" @change="changeRadio3">
<el-radio :label="'1'">目录</el-radio> <el-radio :label="'0'"></el-radio>
<el-radio :label="'2'">菜单</el-radio> <el-radio :label="'1'"></el-radio>
<el-radio :label="'3'">按钮</el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
</tr> </tr>
@ -251,7 +310,8 @@
saveMenusInfo, saveMenusInfo,
putMenusInfo, putMenusInfo,
delMenus, delMenus,
IsEnable IsEnable,
sourceMenuTree,
} from '@/api/system/menu/index.js' } from '@/api/system/menu/index.js'
export default { export default {
@ -263,7 +323,7 @@
dialogTitle: '', dialogTitle: '',
checked: '', checked: '',
form: { form: {
pname: '顶级菜单', pname: '',
iconUrl: '', iconUrl: '',
isShow: '1', isShow: '1',
menuName: '', menuName: '',
@ -275,10 +335,11 @@
psid: '', psid: '',
remarks: '', remarks: '',
sortNo: 0, sortNo: 0,
cid: '',
sourceName: 'wms', sourceName: 'wms',
phoneFunction: "0",
sourceSid: 'd936f1ba-03c3-11ec-bf08-48452053aa33' sourceSid: 'd936f1ba-03c3-11ec-bf08-48452053aa33'
}, },
formBackup: Object.assign({}, this.form),
tableData: [], tableData: [],
page: { page: {
current: 1, current: 1,
@ -296,8 +357,18 @@
isadd: false, isadd: false,
editShow: '1', editShow: '1',
addShow: '1', addShow: '1',
addMenuType: '1', addMenuType: '0',
editMenuType: '1', editMenuType: '0',
addPhoneFunction: "0",
editPhoneFunction: "0",
//
loading: false,
defaultProps: {
children: 'children',
label: 'name'
},
checkedId: [], //
treedata: [], //
} }
}, },
mounted() { mounted() {
@ -309,6 +380,31 @@
// }) // })
}, },
methods: { methods: {
departmentClick(data) {
console.log("departmentClick", data);
this.form.psid = data.sid
this.form.pname = data.name
this.$refs.Tree.visible = false
},
checkchange(data, checked) {
console.log("checkchange", data);
console.log("checkchange", checked);
if (checked) {
this.form.psid = data.sid
this.form.pname = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree.setCheckedKeys(arr);
console.log("checkchange", this.form.pname);
console.log("checkchange", this.form.psid);
return;
}
},
menuTypeChangeRadio(val) { menuTypeChangeRadio(val) {
console.log('menuTypeChangeRadio', val) console.log('menuTypeChangeRadio', val)
this.form.menuType = val this.form.menuType = val
@ -325,6 +421,14 @@
console.log('changeRadio2', val) console.log('changeRadio2', val)
this.form.isShow = val this.form.isShow = val
}, },
changeRadio3(val) {
console.log('changeRadio', val)
this.form.phoneFunction = val
},
changeRadio4(val) {
console.log('changeRadio2', val)
this.form.phoneFunction = val
},
pagination(val) { // pagination(val) { //
this.page.current = val.pageNum this.page.current = val.pageNum
this.page.size = val.pageSize this.page.size = val.pageSize
@ -341,6 +445,7 @@
const treedata = res.data const treedata = res.data
console.log('菜单列表', res) console.log('菜单列表', res)
this.tableData = treedata this.tableData = treedata
this.treedata = treedata
this.page.total = res.data.total this.page.total = res.data.total
}) })
}, },
@ -355,14 +460,14 @@
handleClick(tab, event) { handleClick(tab, event) {
if (tab.name == 'addrole') { if (tab.name == 'addrole') {
this.dialogTitle = '新增' this.dialogTitle = '新增'
this.form = Object.assign({}, this.formBackup)
this.form.isShow = '1' this.form.isShow = '1'
this.form.menuType = '1' this.form.menuType = '0'
// this.form.psid = row.sid || 0 // this.form.psid = row.sid || 0
this.form.pname = '顶级菜单'
this.form.sourceName = 'wms' this.form.sourceName = 'wms'
this.form.sourceSid = 'd936f1ba-03c3-11ec-bf08-48452053aa33' this.form.sourceSid = 'd936f1ba-03c3-11ec-bf08-48452053aa33'
this.form.psid = 0 this.form.pname = ''
this.form.psid = '0'
// this.sourceMenus()
} else { } else {
this.getPageList() this.getPageList()
} }
@ -376,11 +481,11 @@
// } // }
// this.dialogTitle = '' // this.dialogTitle = ''
// this.editDialog = true // this.editDialog = true
this.form = Object.assign({}, this.formBackup)
this.form.isShow = '1' this.form.isShow = '1'
this.form.menuType = '1' this.form.menuType = '0'
// this.form.psid = row.sid || 0 // this.form.psid = row.sid || 0
this.form.pname = row.name || '顶级菜单' this.form.pname = ''
this.form.psid = ''
this.form.sourceName = row.sourceName this.form.sourceName = row.sourceName
this.form.sourceSid = row.sourceSid this.form.sourceSid = row.sourceSid
if (row.isSource == '1') { if (row.isSource == '1') {
@ -406,6 +511,7 @@
putMenusInfo(this.form).then(res => { putMenusInfo(this.form).then(res => {
this.editDialog = false this.editDialog = false
this.getPageList() this.getPageList()
this.rest()
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success' type: 'success'
@ -415,12 +521,35 @@
saveMenusInfo(this.form).then(res => { saveMenusInfo(this.form).then(res => {
this.activeName = 'roleList' this.activeName = 'roleList'
this.getPageList() this.getPageList()
this.rest()
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success' type: 'success'
}) })
}) })
} }
},
rest() {
this.form = {
pname: '',
iconUrl: '',
isShow: '1',
menuName: '',
menuUrl: '',
pageAliasName: '',
pageName: '',
pageUrl: '',
pageUrlRedirect: '',
psid: '',
remarks: '',
cid: '',
sortNo: 0,
sourceName: 'wms',
phoneFunction: "0",
sourceSid: 'd936f1ba-03c3-11ec-bf08-48452053aa33'
}
}, },
deleteRow(row) { deleteRow(row) {
this.$confirm('确定要删除该菜单吗, 是否继续?', '提示', { this.$confirm('确定要删除该菜单吗, 是否继续?', '提示', {

4
src/views/system/userManage/userManageAdd.vue

@ -114,7 +114,9 @@
}, },
methods: { methods: {
getRoleList() { getRoleList() {
var param = {} var param = {
orgSid: window.sessionStorage.getItem('orgSid')
}
roleList(param).then(res => { roleList(param).then(res => {
if (res.code === '200') { if (res.code === '200') {
this.roleListAll = res.data this.roleListAll = res.data

5
src/views/system/userManage/userManageList.vue

@ -384,7 +384,9 @@
this.getOrgUserList() this.getOrgUserList()
}, },
getRoleList() { getRoleList() {
var param = {} var param = {
orgSid: window.sessionStorage.getItem('orgSid')
}
roleList(param).then(res => { roleList(param).then(res => {
if (res.code === '200') { if (res.code === '200') {
this.roleListAll = res.data this.roleListAll = res.data
@ -433,6 +435,7 @@
this.roleDialog = true this.roleDialog = true
this.roleForm.sid = row.sid this.roleForm.sid = row.sid
this.roleForm.userSid = row.sid this.roleForm.userSid = row.sid
this.roleForm.orgsid = window.sessionStorage.getItem('orgSid')
setRole(this.roleForm).then(res => { setRole(this.roleForm).then(res => {
this.roleList = res.data this.roleList = res.data
for (let i = 0; i < res.data.length; i++) { for (let i = 0; i < res.data.length; i++) {

Loading…
Cancel
Save