喻忠伟 2 years ago
commit 5f38e6ef18
  1. 4
      ant-design-vue-jeecg/src/views/customerinvoice/admin/modules/CustomerInvoiceList1.vue
  2. 4
      ant-design-vue-jeecg/src/views/customermeasure/admin/modules/CustomerMeasureList1.vue
  3. 4
      ant-design-vue-jeecg/src/views/customerpayment/admin/modules/CustomerPaymentList1.vue
  4. 4
      ant-design-vue-jeecg/src/views/customershoppingcart/admin/CustomerShoppingCartList.vue
  5. 10
      ant-design-vue-jeecg/src/views/hanger/HangRecordList.vue
  6. 45
      ant-design-vue-jeecg/src/views/hanger/HangerManage.vue
  7. 4
      ant-design-vue-jeecg/src/views/product/pdaccessories/ProductAccessoriesList.vue
  8. 4
      ant-design-vue-jeecg/src/views/product/pdfabric/ProductFabricList.vue
  9. 263
      ant-design-vue-jeecg/src/views/product/productModule/ProductModuleList.vue
  10. 112
      ant-design-vue-jeecg/src/views/product/productModule/modules/ProductModuleDetail.vue
  11. 2
      ant-design-vue-jeecg/src/views/product/productProcess/ZyProductProcessList.vue
  12. 1
      ant-design-vue-jeecg/src/views/productplan/ProductplanManage.vue
  13. 12
      ant-design-vue-jeecg/src/views/productrecord/ProductRecordList.vue
  14. 13
      ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordForm.vue
  15. 4
      ant-design-vue-jeecg/src/views/sensor/SensorList.vue
  16. 2
      ant-design-vue-jeecg/src/views/sensor/modules/SensorForm.vue
  17. 2
      ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordForm.vue
  18. 3
      ant-design-vue-jeecg/src/views/shopping/assets/common.css
  19. 228
      ant-design-vue-jeecg/src/views/shopping/components/Order/placeOrder.vue
  20. 482
      ant-design-vue-jeecg/src/views/shopping/pages/chengyi.vue
  21. 115
      ant-design-vue-jeecg/src/views/shopping/pages/clothType.vue
  22. 73
      ant-design-vue-jeecg/src/views/shopping/pages/gerenzhongxin.vue
  23. 201
      ant-design-vue-jeecg/src/views/shopping/pages/pay.vue
  24. 4
      ant-design-vue-jeecg/src/views/shopping/pages/sirendingzhi.vue
  25. 404
      ant-design-vue-jeecg/src/views/system/User2List1.vue
  26. 18
      ant-design-vue-jeecg/src/views/zyWorkProduct/ZyProductList.vue
  27. 2
      jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  28. 12
      jeecg-boot/jeecg-boot-module-process/src/main/java/org/jeecg/modules/demo/base/controller/ZyClothsTypeController.java
  29. 19
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/controller/ProductRecordController.java
  30. 88
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/entity/ProductRecord.java
  31. 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/entity/Sensor.java
  32. 170
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/zygoods/controller/ZyGoodsController.java
  33. 55
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/zygoods/entity/FzlxSp.java
  34. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/zygoods/entity/ZyGoods.java
  35. 13
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/controller/HangRecordController.java
  36. 8
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/controller/ZyHangPointController.java
  37. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/entity/HangRecord.java
  38. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/service/IHangRecordService.java
  39. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/service/IZyHangPointService.java
  40. 75
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/service/impl/HangRecordServiceImpl.java
  41. 13
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/service/impl/ZyHangPointServiceImpl.java
  42. 42
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/productModule/entity/ProductModule.java
  43. 56
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
  44. 3
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
  45. 23
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
  46. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
  47. 6
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
  48. 32
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/Grzx1.java
  49. 32
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/Grzx2.java

@ -108,8 +108,8 @@
<a @click="up(record.id)">升序</a>
<a-divider type="vertical" />
<a @click="down(record.id)">降序</a>
<a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a>
<!-- <a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a>-->
<a-divider type="vertical" />
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>

@ -101,8 +101,8 @@
<span slot="action" slot-scope="text, record">
<a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" />
<!-- <a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" />-->
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>

@ -103,8 +103,8 @@
<a @click="up(record.id)">升序</a>
<a-divider type="vertical" />
<a @click="down(record.id)">降序</a>
<a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a>
<!-- <a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a-->>
<a-divider type="vertical" />
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>

@ -33,9 +33,9 @@
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('购物车')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
</a-upload>-->
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">

@ -106,6 +106,11 @@ export default {
return parseInt(index) + 1;
}
},
{
title: '工单编号',
align: "center",
dataIndex: 'orderCode'
},
{
title: '吊挂编号',
align: "center",
@ -131,6 +136,11 @@ export default {
align: "center",
dataIndex: 'duration'
},
{
title: '创建时间',
align: "center",
dataIndex: 'createTime'
},
{
title: '状态',
align: "center",

@ -6,6 +6,7 @@
<div>
<j-vxe-table
ref="xTable"
bordered
toolbar
:toolbarConfig="toolbarConfig"
row-number
@ -33,7 +34,7 @@
import '@/assets/less/TableExpand.less'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import {getAction, postAction} from "@api/manage";
import {getAction, postAction, putAction} from "@api/manage";
import {filterObj, pushIfNotExist, randomNumber, randomUUID} from "@/utils/util";
import {JVXETypes} from '@/components/jeecg/JVxeTable'
@ -53,12 +54,12 @@ export default {
{
title: '车间',
key: 'workshopName',
width: '220px',
// width: '220px',
},
{
title: '吊挂编号',
key: 'code',
width: '220px',
// width: '220px',
},
{
title: '工站数量',
@ -69,7 +70,7 @@ export default {
title: '工站编号',
key: 'point',
type: JVXETypes.input,
width: '220px',
// width: '220px',
/*validateRules: [
{
required: true, //
@ -130,7 +131,7 @@ export default {
url: {
list: "/org.jeecg.modules.hanger/zyHang/getPointById",
getStationList: "/jeecg-boot/org.jeecg.modules.hanger/zyHang/getStationList",
syncHangRecord: "/org.jeecg.modules.productplan/zyPlanProcess/syncHangRecord",
syncHangRecord: "/org.jeecg.modules.hanger/hangRecord/syncHangRecord",
addBatch: "/org.jeecg.modules.hanger/zyHangPoint/addBatch",
},
loadRouteType: false,
@ -144,23 +145,25 @@ export default {
},
created() {
this.loadParameter();
// this.getStationList();
},
methods: {
async getStationList() {
const {data: res} = await this.$axios.get(this.url.getStationList, {params: {id: this.id}})
if (res.success) {
// this.dataSource = res.result.records || res.result;
this.stationIdList = JSON.stringify(res.result);
console.log("the getStationList=" + this.stationIdList)
console.log("this.columns[6].options------------:" + this.columns[6].options);
this.columns[6].options = this.stationIdList;
} else {
this.$message.warning(res.message)
}
},
/* updated() {
console.log("beforeUpdate-------",JSON.stringify(this.stationIdList));
console.log("this.$refs.vxe.columns[5].options-------",this.$refs.xTable.columns);
// this.$data.columns[5].options = this.stationIdList;
if (this.$refs.xTable.columns.concat('stationName2')) {
// this.$refs.xTable.columns[5].options = this.stationIdList
console.log("concat")
this.$refs.xTable.columns[5].options= this.stationIdList;
this.$refs.xTable.columns[4].options= this.stationIdList;
}
// this.$forceUpdate();
// this.$refs.xTable.columns[6].options = this.stationIdList
// this.$refs.xTable.columns[7].options = this.stationIdList
},*/
methods: {
//
handleTableSave({$table, target}) {
console.log("生产计划工序保存开始-----------------")
@ -195,7 +198,7 @@ export default {
//
syncHangRecord() {
this.loading = true;
getAction(this.url.syncHangRecord, {"code": this.code}).then((res) => {
putAction(this.url.syncHangRecord, {"hangCode": this.code}).then((res) => {
if (res.success) {
this.$message.success("操作成功");
} else {
@ -264,7 +267,7 @@ export default {
console.log("handleSelectRowChange-event:", event)
const {type, row, column, value, target, $table} = event
console.log("stationIdList", JSON.stringify(this.stationIdList));
target.$refs.vxe.columns[6].options = this.stationIdList;
target.$refs.vxe.columns[7].options = this.stationIdList;
},
/** 当选项被改变时,联动其他组件 */

@ -28,7 +28,7 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="fanhui" type="primary" icon="plus">返回</a-button>
<a-button @click="fanhui" type="primary" icon="rollback">返回</a-button>
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('产品辅料表')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
@ -194,7 +194,7 @@
deleteBatch: "/pdaccessories/productAccessories/deleteBatch",
exportXlsUrl: "/pdaccessories/productAccessories/exportXls",
importExcelUrl: "pdaccessories/productAccessories/importExcel",
},
dictOptions:{},
superFieldList:[],

@ -42,7 +42,7 @@
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
<a-button @click="fanhui" type="primary" icon="plus">返回</a-button>
<a-button @click="fanhui" type="primary" icon="rollback">返回</a-button>
</div>
<!-- table区域-begin -->
@ -189,7 +189,7 @@
deleteBatch: "/pdfabric/productFabric/deleteBatch",
exportXlsUrl: "/pdfabric/productFabric/exportXls",
importExcelUrl: "pdfabric/productFabric/importExcel",
},
dictOptions:{},
superFieldList:[],

@ -1,9 +1,29 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333;padding-left: 35%">{{biaoTi}}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="7" :lg="7" :md="8" :sm="24">
<a-form-item label="模块编号">
<a-input placeholder="模块编号" v-model="queryParam.styleModuleId"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="模块名称">
<j-dict-select-tag placeholder="请选择模块名称" dictCode="zy_cloths_modular,modular_name,id"
v-model="queryParam.modularId"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
@ -11,28 +31,17 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('工单管理下面的产品模块')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<!-- 高级查询区域 -->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
<a-button type="primary" icon="rollback" @click="fanHui()">返回</a-button>
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('工单管理下面的产品模块')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
size="middle"
@ -47,31 +56,12 @@
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
<img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" />
<!--<a @click="handleEdit(record)">编辑</a>-->
<!--<a @click="handleDetail(record)">详情</a>-->
<a @click="openDetail(record.id)">详情</a>
<a-divider type="vertical"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
@ -80,106 +70,125 @@
</a-table>
</div>
<product-module-detail ref="ProductModuleDetail"/>
<product-module-modal ref="modalForm" @ok="modalFormOk"></product-module-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ProductModuleModal from './modules/ProductModuleModal'
import '@/assets/less/TableExpand.less'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ProductModuleModal from './modules/ProductModuleModal'
import ProductModuleDetail from '@/views/product/productModule/modules/ProductModuleDetail'
export default {
name: 'ProductModuleList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ProductModuleModal
},
data () {
return {
description: '工单管理下面的产品模块管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'产品id',
align:"center",
dataIndex: 'productId'
},
{
title:'款式模块id',
align:"center",
dataIndex: 'styleModuleId'
},
{
title:'模块id',
align:"center",
dataIndex: 'moduleId'
},
{
title:'部位',
align:"center",
dataIndex: 'place'
},
{
title: '创建时间',
align: "center",
dataIndex: 'createTime'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
export default {
name: 'ProductModuleList',
mixins: [JeecgListMixin, mixinDevice],
components: {
ProductModuleDetail,
ProductModuleModal
},
data() {
return {
description: '工单管理下面的产品模块管理页面',
biaoTi: '',
loadRouteType: false,
//
columns: [
{
title: '#',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: "center",
customRender: function (t, r, index) {
return parseInt(index) + 1;
}
],
url: {
list: "/productModule/productModule/list",
delete: "/productModule/productModule/delete",
deleteBatch: "/productModule/productModule/deleteBatch",
exportXlsUrl: "/productModule/productModule/exportXls",
importExcelUrl: "productModule/productModule/importExcel",
},
dictOptions:{},
superFieldList:[],
}
{
title: '产品编号',
align: "center",
dataIndex: 'productId'
},
{
// title:'id',
title: '模块编号',
align: "center",
dataIndex: 'styleModuleId'
},
{
title: '模块名称',
align: "center",
dataIndex: 'moduleId'
},
{
title: '创建时间',
align: "center",
dataIndex: 'createTime'
},
{
title: '操作',
dataIndex: 'action',
align: "center",
fixed: "right",
width: 147,
scopedSlots: {customRender: 'action'}
}
],
url: {
list: "/productModule/productModule/list",
delete: "/productModule/productModule/delete",
deleteBatch: "/productModule/productModule/deleteBatch",
exportXlsUrl: "/productModule/productModule/exportXls",
importExcelUrl: "productModule/productModule/importExcel",
},
dictOptions: {},
superFieldList: [],
}
},
created() {
// this.getSuperFieldList();
this.loadParameter();
},
computed: {
importExcelUrl: function () {
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
created() {
this.getSuperFieldList();
},
methods: {
openDetail(id) {
this.$refs.ProductModuleDetail.showModal(id)
// this.$children[0].showModal(id)
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
fanHui() {
this.$router.push({
/*返回产品*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'productId',text:'产品id',dictCode:''})
fieldList.push({type:'string',value:'styleModuleId',text:'款式模块id',dictCode:''})
fieldList.push({type:'string',value:'moduleId',text:'模块id',dictCode:''})
fieldList.push({type:'string',value:'place',text:'部位',dictCode:''})
this.superFieldList = fieldList
loadParameter() {
if (this.loadRouteType === false) {
this.biaoTi = this.$route.query.productName + " 产品模块管理";
//console.log("***********", this.$route.query.productName)
this.loadRouteType = true;
}
},
initDictConfig() {
},
getSuperFieldList() {
let fieldList = [];
fieldList.push({type: 'string', value: 'productId', text: '产品id', dictCode: ''})
fieldList.push({type: 'string', value: 'styleModuleId', text: '款式模块id', dictCode: ''})
fieldList.push({type: 'string', value: 'moduleId', text: '模块id', dictCode: ''})
fieldList.push({type: 'string', value: 'place', text: '部位', dictCode: ''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,112 @@
<template>
<div>
<a-modal
title="模块管理-详情"
:visible="visible"
:confirm-loading="confirmLoading"
:width='1200'
@ok="handleOk"
@cancel="handleCancel"
style="display:flex;"
>
<div style="width: 96%;margin:0 auto 40px;padding-bottom: 30px">
<h1 style="text-align: center;margin-bottom: 0px;padding-bottom: 20px">黄淮学院服装智能制造管理平台 - <span>模块管理</span></h1>
<div>
<el-descriptions class="margin-top" :column="4" border style="margin-top: 50px">
<el-descriptions-item>
<template slot="label"><i class="el-icon-receiving"></i>产品名称</template>
{{model.productId}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"><i class="el-icon-coin"></i>模块编号</template>
{{model.styleModuleId}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"><i class="el-icon-postcard"></i>模块名称</template>
{{model.moduleId}}
</el-descriptions-item>
<!-- <el-descriptions-item>-->
<!-- <template slot="label"><i class="el-icon-copy-document"></i>颜色</template>-->
<!-- {{model.color}}-->
<!-- </el-descriptions-item>-->
<el-descriptions-item>
<template slot="label"><i class="el-icon-copy-document"></i>创建时间</template>
{{model.createTime}}
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</a-modal>
</div>
</template>
<script>
export default {
name: "ProductModuleDetail.vue",
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data() {
return {
model: {},
labelCol: {xs: {span: 24}, sm: {span: 5}},
wrapperCol: {xs: {span: 24}, sm: {span: 16}},
confirmLoading: false,
url: {
add: "/fabric/zyFabric/add",
edit: "/fabric/zyFabric/edit",
queryById: "/fabric/zyFabric/queryById"
},
visible: false
}
},
computed: {
formDisabled() {
return this.disabled
},
},
created() {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
showModal(id) {
this.visible = true;
this.$http.get('/productModule/productModule/queryById?id=' + id).then(
res => {
this.model = res.result
console.log(this.model)
}
)
},
handleOk() {
this.ModalText = 'The modal will be closed after two seconds';
this.confirmLoading = true;
setTimeout(() => {
this.visible = false;
this.confirmLoading = false;
}, 1);
},
handleCancel() {
this.visible = false;
},
}
}
</script>
<style scoped>
</style>

@ -28,7 +28,7 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="fanhui" type="primary" icon="plus">返回</a-button>
<a-button @click="fanhui" type="primary" icon="rollback">返回</a-button>
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('产品工序')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->

@ -33,6 +33,7 @@
<j-vxe-table
ref="xTable"
toolbar
bordered
:toolbarConfig="toolbarConfig"
row-number
row-selection

@ -11,7 +11,7 @@
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="工单编号">
<j-search-select-tag placeholder="请选择工单编号" v-model="queryParam.orderCode" dict="findgdbh,order_id,order_code,id,orders_num"/>
<j-popup placeholder="请选择工单编号" v-model="queryParam.orderCode" code="findgdbh" org-fields="id,orders_num" dest-fields="order_id,order_code" :field="getPopupField('order_id,order_code')" :multi="true"/>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
@ -157,7 +157,7 @@
{
title:'工单编号',
align:"center",
dataIndex: 'orderId'
dataIndex: 'orderId_dictText'
},
{
title:'生产开始时间',
@ -194,14 +194,14 @@
deleteBatch: "/productrecord/productRecord/deleteBatch",
exportXlsUrl: "/productrecord/productRecord/exportXls",
importExcelUrl: "productrecord/productRecord/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
@ -215,8 +215,8 @@
let fieldList=[];
fieldList.push({type:'sel_search',value:'stationId',text:'工位',dictTable:'station', dictText:'station_name', dictCode:'id'})
fieldList.push({type:'popup',value:'stationName',text:'工位', popup:{code:'findgw',field:'id',orgFields:'id',destFields:'station_id'}})
fieldList.push({type:'sel_search',value:'orderCode',text:'工单编号',dictTable:'findgdbh', dictText:'order_id,order_code', dictCode:'id,orders_num'})
fieldList.push({type:'popup',value:'orderId',text:'工单编号', popup:{code:'work_order',field:'id',orgFields:'id',destFields:'product_code'}})
fieldList.push({type:'popup',value:'orderCode',text:'工单编号', popup:{code:'findgdbh',field:'id',orgFields:'id',destFields:'order_id'}})
fieldList.push({type:'sel_search',value:'orderId',text:'工单编号',dictTable:'work_order', dictText:'product_code', dictCode:'id'})
fieldList.push({type:'datetime',value:'workTime',text:'生产开始时间'})
fieldList.push({type:'datetime',value:'offTime',text:'生产结束时间'})
fieldList.push({type:'string',value:'duration',text:'时长',dictCode:''})

@ -13,12 +13,20 @@
code="findgw"
:multi="true"
@input="popupCallback"
/>
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCode">
<j-search-select-tag v-model="model.orderCode" dict="findgdbh,order_id,order_code,id,orders_num" />
<j-popup
v-model="model.orderCode"
field="orderCode"
org-fields="id,orders_num"
dest-fields="orderId,orderCode"
code="findgdbh"
:multi="true"
@input="popupCallback"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
@ -46,7 +54,6 @@
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'

@ -172,7 +172,7 @@
{
title:'工位',
align:"center",
dataIndex: 'stationId'
dataIndex: 'stationId_dictText'
},
{
title:'进出标记',
@ -194,7 +194,7 @@
deleteBatch: "/sensor/sensor/deleteBatch",
exportXlsUrl: "/sensor/sensor/exportXls",
importExcelUrl: "sensor/sensor/importExcel",
},
dictOptions:{},
superFieldList:[],

@ -10,7 +10,7 @@
</a-col>
<a-col :span="24">
<a-form-model-item label="车间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workshopId">
<j-search-select-tag v-model="model.workshopId" dict="sys_depart,depart_name,id" />
<j-search-select-tag v-model="model.workshopId" dict="sys_depart,depart_name,id" disabled/>
</a-form-model-item>
</a-col>
<a-col :span="24">

@ -94,4 +94,7 @@ a {
.c_1B {
color: #1B1B1B;
}
.c_31 {
color: #313131;
}
.textfield {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}

@ -25,22 +25,144 @@
</a-radio-group>
</a-form-item>
<a-form-item
label="Field A"
label="称呼"
>
<a-input placeholder="input placeholder" />
<a-select placeholder="请选择称呼" :value="userSex" style="width: 120px;margin-right:10px" @change="handleChange">
<a-select-option value="1">
先生
</a-select-option>
<a-select-option value="0">
女士
</a-select-option>
</a-select>
<a-input style="width:300px" placeholder="请输入姓名" :value="userName"/>
</a-form-item>
<a-form-item
label="Field B"
label="选择地址"
>
<a-input placeholder="input placeholder" />
</a-form-item>
<a-form-item
label="详细地址"
>
<a-textarea placeholder="请输入街道、门牌号码等详细地址" auto-size />
</a-form-item>
<a-form-item
label="手机号码"
>
<a-input style="width:150px;margin-right:10px" placeholder="+86 中国大陆地区" disabled/>
<a-input style="width:300px" placeholder="请输入手机号码" :value="userName"/>
</a-form-item>
<a-form-item>
<a-checkbox @change="onChange">
保存该地址至地址簿
</a-checkbox>
</a-form-item>
<!-- <a-form-item v-bind="formItemLayout" label="手机号码">-->
<!-- <a-input-->
<!-- v-decorator="[-->
<!-- 'phone',-->
<!-- {-->
<!-- rules: [{ required: true, message: 'Please input your phone number!' }],-->
<!-- },-->
<!-- ]"-->
<!-- >-->
<!-- <a-select-->
<!-- slot="addonBefore"-->
<!-- v-decorator="['prefix', { initialValue: '86' }]"-->
<!-- style="width: 70px"-->
<!-- default-value="86"-->
<!-- >-->
<!-- <a-select-option value="86">-->
<!-- +86 中国大陆地区-->
<!-- </a-select-option>-->
<!-- <a-select-option value="87">-->
<!-- +87 中国大陆地区-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- </a-input>-->
<!-- </a-form-item>-->
</a-form>
</div>
</div>
<div class="addr"></div>
<div class="addr"></div>
<div class="addr">
<div class="title">
<span class="icon">2</span>
<span class="text f_18">支付方式</span></div>
<div class="pay">
<p class="f_12 c_1B">在线支付</p>
<a-radio-group v-model="paymentMode" @change="onChange1">
<a-radio :value="1">
<a-icon type="alipay" style="background:#08AAFF;color:#fff;border-radius: 2px;padding:1px;margin-right:3px"/>
<span>支付宝</span>
</a-radio>
<a-radio :value="2">
<a-icon type="wechat" style="background:#00B40C;color:#fff;border-radius: 2px;padding:1px;margin-right:3px"/>
<span>微信支付</span>
</a-radio>
</a-radio-group>
</div>
<a-checkbox @change="onChange">
需要电子发票
</a-checkbox>
</div>
<!-- <div class="addr"></div>-->
</div>
<div class="rightDiv">
<div class="order">
<p class="d-flex title">
<span class="f_14 c_999">订单小计</span>
<span class="f_14 c_31">已选 1 件商品</span>
</p>
<div class="table d-flex">
<div class="left">
<!-- <img src="">-->
<div class="img"></div>
</div>
<div class="right">
<p class="d-flex">
<span class="f_12 c_1B">关键词12定制款立领衬</span>
<span class="f_12 c_999">数量1</span>
</p>
<p class="f_12 c_999">款式立领标签2</p>
<p class="d-flex">
<span class="f_12 c_999">主辅料主料1辅料1叮叮叮辅料n</span>
<span class="f_12 c_999">数量1</span>
</p>
<p class="f_12 c_999">尺码 XXS</p>
<p class="d-flex">
<span class="f_12 c_999">定制</span>
<span class="f_12 c_999">35,500</span>
</p>
</div>
</div>
<p class="d-flex">
<span class="f_14 c_31">商品总计</span>
<span class="f_14 c_666">35,500</span>
</p>
<p class="d-flex">
<span class="f_14 c_31">运费</span>
<span class="f_14 c_999">免费</span>
</p>
<p class="d-flex title">
<span class="f_14 c_31">总计</span>
<span class="f_20 c_31">35,500</span>
</p>
<div class="btnDiv">
<div type="primary" class="dialogButton primary f_14">立即购买</div>
</div>
<p class="explain f_12 c_999">说明</p>
<p class="f_12 c_999">在线支付订单提交之后15分钟内未付款订单将被系统自动取消请您尽快完成支付以确保商品能及时送达避免取消订单带来不必要的麻烦</p>
</div>
<div class="time">
<p class="f_20 c_333">预计配送时间</p>
<p class="f_12 c_333">我们将会在第一时间为您发货</p>
<p class="f_12 c_333">所有现货商品在1-2个工作日发货门店调货商品会视货品情况进行发货</p>
<p class="f_12 c_333">*定制商品除外</p>
<p class="f_16 c_333">需要多长时间能够送达 </p>
<p class="f_12 c_333">中国大陆2-5个工作日视货品情况而定</p>
</div>
</div>
<div class="rightDiv">1</div>
</div>
</div>
@ -50,6 +172,10 @@
data() {
return {
formLayout: 'horizontal',
userSex:'',//
userName:'',//
value: 1,
paymentMode:'',//
};
},
computed: {
@ -75,12 +201,44 @@
handleFormLayoutChange(e) {
this.formLayout = e.target.value;
},
handleChange(value) {
this.userSex = value
},
onChange(e) {
console.log(`checked = ${e.target.checked}`);
},
onChange1(e) {
console.log('radio checked', e.target.value);
},
},
};
</script>
<style lang="less" scoped>
.btnDiv{
border-bottom: 1px solid #E7E7E7;
padding-bottom: 30px;
padding-top: 20px;
.dialogButton {
height: 44px;
text-align: center;
line-height: 44px;
transition: all 0.2s;
}
.primary {
background: #1b1b1b;
border: 2px solid #1b1b1b;
color: #e5dfd9;
&:hover {
// border-color: #1b1b1b;
// color: #1b1b1b;
// background-color: #fff;
opacity: 0.8;
}
}
}
.placeOrder{
padding-top: 54px;
padding-bottom: 80px;
background-color: #F6F6F6;
& >.jz{
justify-content: space-around;
@ -123,6 +281,15 @@
.addr{
background-color: #fff;
padding:0 30px 30px 30px;
margin-bottom: 25px;
.pay{
padding: 47px 20px;
border-bottom: 1px solid #EAEAEA;
margin-bottom: 20px;
.ant-radio-wrapper{
margin-right: 20px;
}
}
}
.form{
background-color: #fff;
@ -131,6 +298,55 @@
}
.rightDiv{
width: 410px;
.order{
background: #FFFFFF;
padding: 24px 43px;
margin-bottom: 24px;
.d-flex{
justify-content: space-between;
.left{
width: 60px;
}
.right{
width: 250px;
}
}
&>.d-flex{
padding: 10px 0;
}
&>.title.d-flex{
border-bottom: 1px solid #E7E7E7;
padding: 20px 0;
}
.left{
.img{
background: #D9D9D9;
width: 60px;
height: 77px;
}
}
.explain{
padding-top: 25px;
padding-bottom: 10px;
}
}
.time{
background: #fff;
padding: 24px 43px;
p{
margin-bottom: 5px;
}
.f_20{
font-weight: 500;
margin-bottom: 30px;
}
.f_16{
font-weight: 500;
margin-top: 45px;
margin-bottom: 25px;
}
}
}
}
}

@ -1,75 +1,76 @@
<template>
<!-- 服装类型-->
<!-- 成衣推荐-->
<div class="chengyi">
<Header fontColor="#000"></Header>
<div class="main">
<div class="jz d-flex">
<el-menu
class="el-menu-vertical-demo"
@select="handleSelet"
style="width: 10%; min-width: 140px"
:unique-opened="true"
>
<el-submenu v-for="(item, i) in typeData" :key="i" :index="item.id">
<template slot="title">
<i class="el-icon-male"></i>
<span>{{ item.name }}</span>
</template>
<el-submenu v-for="(j, i2) in item.childrens" :key="i2" :index="j.id">
<template slot="title">{{ j.name }}</template>
<el-menu-item v-for="(k, i3) in j.childrens" :key="i3" :index="k.id">{{ k.name }}</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
<div class="right">
<div class="name d-flex">
<span>{{this.current.name}}</span>
<div class="d-flex">
<el-dropdown @command="handleCommand">
<Header fontColor="#000"></Header>
<div class="main">
<div class="jz d-flex">
<el-menu
class="el-menu-vertical-demo"
@select="handleSelet"
style="width: 10%; min-width: 140px"
:unique-opened="true"
>
<el-submenu v-for="(item, i) in typeData" :key="i" :index="item.id">
<template slot="title">
<i class="el-icon-male"></i>
<span>{{ item.name }}</span>
</template>
<el-menu-item v-for="(j, i2) in item.childrens" :key="i2" :index="j.id">{{ j.name }}</el-menu-item>
<!-- <el-submenu v-for="(j, i2) in item.childrens" :key="i2" :index="j.id">-->
<!-- <template slot="title">{{ j.name }}</template>-->
<!-- <el-menu-item v-for="(k, i3) in j.childrens" :key="i3" :index="k.id">{{ k.name }}</el-menu-item>-->
<!-- </el-submenu>-->
</el-submenu>
</el-menu>
<div class="right">
<div class="name d-flex">
<span>{{this.current.name}}</span>
<div class="d-flex">
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link">
排序<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="heat">热度</el-dropdown-item>
<!-- <el-dropdown-item command="esteem">评分</el-dropdown-item>-->
<el-dropdown-item command="high">价格降序</el-dropdown-item>
<el-dropdown-item command="low">价格升序</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <div class="iconDiv d-flex">-->
<!-- <span>价格</span>-->
<!-- <div class="icon d-flex">-->
<!-- <i class="el-icon-arrow-up"></i>-->
<!-- <i class="el-icon-arrow-down"></i>-->
<!-- </div>-->
<!-- </div>-->
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="heat">热度</el-dropdown-item>
<!-- <el-dropdown-item command="esteem">评分</el-dropdown-item>-->
<el-dropdown-item command="high">价格降序</el-dropdown-item>
<el-dropdown-item command="low">价格升序</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <div class="iconDiv d-flex">-->
<!-- <span>价格</span>-->
<!-- <div class="icon d-flex">-->
<!-- <i class="el-icon-arrow-up"></i>-->
<!-- <i class="el-icon-arrow-down"></i>-->
<!-- </div>-->
<!-- </div>-->
</div>
<div class="clothDiv d-flex">
<div
class="item"
v-for="(item, index) in clothsList"
:key="index"
@click="clothDetails(item)"
>
<div class="imgDiv">
<img :src="item.imgUrl" alt="" />
</div>
<div class="clothTitle">
<p class="price d-flex">
<span class="f_16 c_333">{{ item.currentPrice }}</span>
<span class="f_12 c_999">{{ item.historicalPrice }}</span>
</p>
<p class="f_12 c_333">{{ item.title }}</p>
<p class="f_12 c_9a9b9b">热度{{ item.heat }}</p>
</div>
</div>
<div class="clothDiv d-flex">
<div
class="item"
v-for="(item, index) in clothsList"
:key="index"
@click="clothDetails(item)"
>
<div class="imgDiv">
<img :src="item.imgUrl" alt="" />
</div>
<div class="clothTitle">
<p class="price d-flex">
<span class="f_16 c_333">{{ item.currentPrice }}</span>
<span class="f_12 c_999">{{ item.historicalPrice }}</span>
</p>
<p class="f_12 c_333">{{ item.title }}</p>
<p class="f_12 c_9a9b9b">热度{{ item.heat }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
@ -195,82 +196,64 @@
name: "男装",
childrens: [
{
id: '11',
name: "上衣",
childrens: [
{
id: '111',
name: "衬衫",
},
{
id: '112',
name: "卫衣",
},
{
id: '113',
name: "Polo衫",
},
{
id: '114',
name: "针织衫",
},
],
},
{
id: '12',
name: "外套",
childrens: [
{
id: '121',
name: "夹克",
},
{
id: '122',
name: "羽绒服",
},
{
id: '123',
name: "风衣",
},
],
},
{
id: '13',
name: "裤子",
childrens: [
{
id: '131',
name: "休闲裤",
},
{
id: '132',
name: "西裤",
},
{
id: '133',
name: "工装裤",
},
{
id: '134',
name: "运动裤",
},
{
id: '135',
name: "卫裤",
},
{
id: '136',
name: "九分裤",
},
{
id: '137',
name: "短裤",
},
{
id: '138',
name: "哈伦裤",
},
],
id: '111',
name: "衬衫",
},
{
id: '112',
name: "卫衣",
},
{
id: '113',
name: "Polo衫",
},
{
id: '114',
name: "针织衫",
},
{
id: '121',
name: "夹克",
},
{
id: '122',
name: "羽绒服",
},
{
id: '123',
name: "风衣",
},
{
id: '131',
name: "休闲裤",
},
{
id: '132',
name: "西裤",
},
{
id: '133',
name: "工装裤",
},
{
id: '134',
name: "运动裤",
},
{
id: '135',
name: "卫裤",
},
{
id: '136',
name: "九分裤",
},
{
id: '137',
name: "短裤",
},
{
id: '138',
name: "哈伦裤",
},
],
},
@ -279,82 +262,130 @@
name: "女装",
childrens: [
{
id: '21',
name: "上衣",
childrens: [
{
id: '211',
name: "衬衫",
},
{
id: '212',
name: "卫衣",
},
{
id: '213',
name: "Polo衫",
},
{
id: '214',
name: "针织衫",
},
],
},
{
id: '22',
name: "外套",
childrens: [
{
id: '221',
name: "夹克",
},
{
id: '222',
name: "羽绒服",
},
{
id: '223',
name: "风衣",
},
],
},
{
id: '23',
name: "裤子",
childrens: [
{
id: '231',
name: "休闲裤",
},
{
id: '232',
name: "西裤",
},
{
id: '233',
name: "工装裤",
},
{
id: '234',
name: "运动裤",
},
{
id: '235',
name: "卫裤",
},
{
id: '236',
name: "九分裤",
},
{
id: '237',
name: "短裤",
},
{
id: '238',
name: "哈伦裤",
},
],
id: '211',
name: "衬衫",
},
{
id: '212',
name: "卫衣",
},
{
id: '213',
name: "Polo衫",
},
{
id: '214',
name: "针织衫",
},
{
id: '221',
name: "夹克",
},
{
id: '222',
name: "羽绒服",
},
{
id: '223',
name: "风衣",
},
{
id: '231',
name: "休闲裤",
},
{
id: '232',
name: "西裤",
},
{
id: '233',
name: "工装裤",
},
{
id: '234',
name: "运动裤",
},
{
id: '235',
name: "卫裤",
},
{
id: '236',
name: "九分裤",
},
{
id: '237',
name: "短裤",
},
{
id: '238',
name: "哈伦裤",
},
],
},
{
id: '3',
name: "童装",
childrens: [
{
id: '311',
name: "衬衫",
},
{
id: '312',
name: "卫衣",
},
{
id: '313',
name: "Polo衫",
},
{
id: '314',
name: "针织衫",
},
{
id: '321',
name: "夹克",
},
{
id: '322',
name: "羽绒服",
},
{
id: '323',
name: "风衣",
},
{
id: '331',
name: "休闲裤",
},
{
id: '332',
name: "西裤",
},
{
id: '333',
name: "工装裤",
},
{
id: '334',
name: "运动裤",
},
{
id: '335',
name: "卫裤",
},
{
id: '336',
name: "九分裤",
},
{
id: '337',
name: "短裤",
},
{
id: '338',
name: "哈伦裤",
},
],
},
@ -362,7 +393,8 @@
//
current:{
id:'',
name:''
name:'',
parrentName:''
}
};
},
@ -374,19 +406,24 @@
const indexb = this.typeData[indexa].childrens.findIndex((value, keys, arr) => {
return value.id == indexPath[1]
})
const indexc = this.typeData[indexa].childrens[indexb].childrens.findIndex((value, keys, arr) => {
return value.id == indexPath[2]
})
this.current.name = this.typeData[indexa].childrens[indexb].childrens[indexc].name
this.current.id = this.typeData[indexa].childrens[indexb].childrens[indexc].id
// const indexc = this.typeData[indexa].childrens[indexb].childrens.findIndex((value, keys, arr) => {
// return value.id == indexPath[2]
// })
// this.current.name = this.typeData[indexa].childrens[indexb].childrens[indexc].name
// this.current.id = this.typeData[indexa].childrens[indexb].childrens[indexc].id
this.current.name = this.typeData[indexa].childrens[indexb].name
this.current.id = this.typeData[indexa].childrens[indexb].id
this.current.parrentName = this.typeData[indexa].name
},
handleSelet(index,indexPath){
this.findIndex(indexPath)
//,this.current.id
// this.clothsList
},
clothDetails(item) {
this.$router.push({
path: "/shopping/ClothDetail",
query: { id: item.id, title: item.title },
query: { id: item.id, title: item.title ,name:this.current.name,parentName:this.current.parrentName},
});
},
handleCommand(command){
@ -396,8 +433,8 @@
else if(command == 'high'){//
this.clothsList.sort(compareDown("currentPrice"))
}
// else if(command == 'esteem'){//
// this.clothsList.sort(compare("heat"))
// else if(command == 'esteem'){//
// this.clothsList.sort(compare("heat"))
// }
else if(command == 'low'){//
@ -405,6 +442,11 @@
}
}
},
mounted() {
this.current.name = this.typeData[0].childrens[0].name
this.current.id = this.typeData[0].childrens[0].id
this.current.parrentName = this.typeData[0].name
}
}
</script>
<style scoped>

@ -75,6 +75,7 @@
</template>
<script>
import Header from '../components/Header/HeaderView'
import { httpAction, getAction } from '@/api/manage'
let compareDown = function (prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
@ -106,89 +107,12 @@
components: {Header},
data() {
return {
url: {
cd: "/zygoods/zyGoods/cd",
lxlist: "/zygoods/zyGoods/lxlist",
},
//
clothsList: [
{
id: 1,
imgUrl: require("../assets/cloth.png"),
currentPrice: 199,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3100,
},
{
id: 2,
imgUrl: require("../assets/cloth.png"),
currentPrice: 299,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3200,
},
{
id: 3,
imgUrl: require("../assets/cloth.png"),
currentPrice: 399,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3300,
},
{
id: 4,
imgUrl: require("../assets/cloth.png"),
currentPrice: 499,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3400,
},
{
id: 5,
imgUrl: require("../assets/cloth.png"),
currentPrice: 599,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3500,
},
{
id: 6,
imgUrl: require("../assets/cloth.png"),
currentPrice: 699,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3600,
},
{
id: 7,
imgUrl: require("../assets/cloth.png"),
currentPrice: 599,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3700,
},
{
id: 8,
imgUrl: require("../assets/cloth.png"),
currentPrice: 599,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3800,
},
{
id: 9,
imgUrl: require("../assets/cloth.png"),
currentPrice: 599,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat: 3900,
},
{
id: 10,
imgUrl: require("../assets/cloth.png"),
currentPrice: 599,
historicalPrice: 799,
title: "HOODIE 运动长袖连帽卫衣套头衫",
heat:4000,
},
],
clothsList: [],
//
typeData: [
{
@ -419,6 +343,13 @@
this.findIndex(indexPath)
//,this.current.id
// this.clothsList
getAction(this.url.lxlist,{typeid:indexPath[1]}).then((res1) => {
if (res1.success) {
this.clothsList = res1.result;
}else{
this.$message.error(res1.message);
}
});
},
clothDetails(item) {
this.$router.push({
@ -443,9 +374,23 @@
}
},
mounted() {
this.current.name = this.typeData[0].childrens[0].name
this.current.id = this.typeData[0].childrens[0].id
this.current.parrentName = this.typeData[0].name
getAction(this.url.cd).then((res) => {
if (res.success) {
this.typeData = res.result;
this.current.name = res.result[0].childrens[0].name
this.current.id = res.result[0].childrens[0].id
this.current.parrentName = res.result[0].name
getAction(this.url.lxlist,{typeid:res.result[0].childrens[0].id}).then((res1) => {
if (res1.success) {
this.clothsList = res1.result;
}else{
this.$message.error(res1.message);
}
});
}else{
this.$message.error(res.message);
}
});
}
}
</script>

@ -5,7 +5,8 @@
<div class="bg"></div>
<div class="info jz d-flex">
<img src="../assets/photo.png">
<p class="f_36 c_1B">welcome, 用户名</p>
<p class="f_36 c_1B" v-if="this.userInfo().username==null">请登录</p>
<p class="f_36 c_1B" v-if="this.userInfo().username!=null">welcome, {{this.userInfo().username}}</p>
<a>量体数据</a>
</div>
<div class="jz">
@ -89,13 +90,21 @@
<script>
import Header from "../components/Header/HeaderView";
import Footer from "../components/Footer/FooterView"
import {mapGetters} from 'vuex'
import { getFileAccessHttpUrl} from "@/api/manage"
import { httpAction, getAction } from '@/api/manage'
export default {
name: "gerenzhongxin",
components: { Header,Footer },
data() {
data() {0
return {
model:{
username1: ""
},
current: ['allorders'],//
key:'',//
allOrders2:[],
allOrders1:[
{
id:1,
@ -141,14 +150,60 @@
}
],//
allOrders:[],//
url: {
list: "/starehouse/starehouse/list",
getusername: "/sys/user/getusername",
findgoods: "/sys/user/findgoods"
},
};
},
created() {
this.getusername();
this.getallgoods();
},
mounted() {
if(this.current[0] == 'allorders'){
this.allOrders = this.allOrders1
/*this.allOrders = this.allOrders1*/
this.allOrders = this.allOrders2
}
},
methods: {
getallgoods(){
getAction(this.url.findgoods).then((res) => {
if(res.success) {
this.allOrders2 = res.result;
console.log("===========")
console.log(res.result)
console.log(this.allOrders2)
console.log("===========")
this.visible = true;
} else {
console.log("-----------")
}
});
},
getusername(){
getAction(this.url.getusername).then((res) => {
if(res.success) {
this.model.username1 = res.result;
console.log(res.message)
this.visible = true;
} else {
}
});
},
...mapGetters(["nickname", "avatar", "userInfo", "addRouters", "username", "permissionList"]),
//
getAvatar(){
return getFileAccessHttpUrl(this.avatar())
},
callback(key) {
console.log(key);
},
@ -185,16 +240,20 @@
this.current.shift()
this.current.push(key.key)
if(key.key == 'allorders'){
this.allOrders = this.allOrders1
/* this.allOrders = this.allOrders1*/
this.allOrders = this.allOrders2
}
else if(key.key == 'daizhifu'){
this.allOrders = this.allOrders1.filter(item=>item.pay == false)
/* this.allOrders = this.allOrders1.filter(item=>item.pay == false)*/
this.allOrders = this.allOrders2.filter(item=>item.pay == false)
}
else if(key.key == 'daishouhuo'){
this.allOrders = this.allOrders1.filter(item=>item.receipt == false && item.pay == true)
/*this.allOrders = this.allOrders1.filter(item=>item.receipt == false && item.pay == true)*/
this.allOrders = this.allOrders2.filter(item=>item.receipt == false && item.pay == true)
}
else if(key.key == 'yiwancheng'){
this.allOrders = this.allOrders1.filter(item=>item.receipt == true)
/*this.allOrders = this.allOrders1.filter(item=>item.receipt == true)*/
this.allOrders = this.allOrders2.filter(item=>item.receipt == true)
}else{
this.allOrders=[]
}

@ -5,23 +5,120 @@
<Header></Header>
<h1 class="c_fff">感谢您的订购</h1>
</div>
<a-modal v-model="visible" class="toPay">
<template slot="title">
<div class="c_1B f_20" style="text-align: center;padding: 5px;font-weight: 500">支付宝支付</div>
</template>
<div class="d-flex"
style="
width: 450px;
padding: 30px 10px;
margin: 0 auto;">
<div class="l"
style="
width: 120px;
height: 120px;
background-color: grey;
margin-right: 20px;">
</div>
<div class="r" style="width:290px">
<p class="f_16 c_4B">总计: 9,900</p>
<p class="f_14 c_4B">请使用支付宝扫描左图二维码进行支付</p>
<p class="f_14 c_4B">请您在15分钟内付款以免订单被取消如有疑问请联系客服</p>
<p class="f_14 c_4B">订单发货后您将收到订单发货通知短信</p>
</div>
</div>
<template slot="footer">
<div class="d-flex" style="justify-content: center;align-items:center">
<a-button style="margin-right: 30px;border:none;font-size: 12px" @click="handleOk">手机不在身边 登录账号付款</a-button>
<a-button style="font-size: 12px" size="small" @click="handleCancel">
返回
</a-button>
</div>
</template>
</a-modal>
<div class="jz">
<a-button style="border: none" @click="handleBack">
<a-icon type="left" />返回
</a-button>
<div class="success">
<p class="c_1B f_24">您的订单已提交成功</p>
<p class="c_999 f_14">请继续支付15分钟内未付款订单将自动取消</p>
<p class="c_999 f_14">如有疑问请联系客服</p>
<p class="c_1B f_16"><span>1</span><span>4</span><span>:</span><span>5</span><span>2</span></p>
<p class="c_1B f_16">
<!-- letter-spacing-->
<span>1</span>
<span>4</span>
<span>:</span>
<span>5</span>
<span>2</span>
</p>
<div class="d-flex btnDiv">
<div class="dialogButton default c_1B f_12">修改支付方式</div>
<div type="primary" class="dialogButton primary f_12">立即支付</div></div>
<div type="primary" class="dialogButton primary f_12" @click="showModal">立即支付</div></div>
</div>
<p class="orderNum f_16"><span class="f_16">订单编号 # </span>GU202301052604844</p>
<p class="date f_16 d-flex">
<span class="f_16 c_31">下单日期 <span>2023/01/05</span></span>
<span class="f_12 c_888">订单状态 待付款</span>
<span class="f_12 c_31">数量: 1</span>
<span class="f_12 c_31">总计 9,900</span>
<span class="r d-flex">
<span class="f_12 c_31">数量: 1</span>
<span class="f_12 c_31">总计 9,900</span>
</span>
</p>
<div class="table d-flex">
<div class="tableImg"></div>
<div class="tableTitle">
<div class="title c_31 f_16">中国新年系列针织慢跑裤</div>
<div class="c_999 f_12">款式 象牙白色和多色</div>
<div class="c_999 f_12">主辅料 主料1辅料1叮叮叮辅料n主辅料 主料1辅料1叮叮叮辅料n主辅料 主料1辅料1叮叮叮辅料n</div>
<div class="c_999 f_12">尺码 S</div>
</div>
<div class="fahuo c_31 f_12">预计发货后1-4个工作日送达</div>
<div class="r d-flex">
<div class="tableNum c_31 f_12">数量 : 1</div>
<div class="tablePrice c_31 f_12">9,900</div>
</div>
</div>
<div class="total d-flex">
<div class="d-flex">
<span>商品总计</span>
<span>9,900</span>
</div>
<div class="d-flex">
<span>运费</span>
<span>免费</span>
</div>
<div class="d-flex">
<span>总计</span>
<span>9,900</span>
</div>
</div>
<div class="addr d-flex">
<div class="f_16 c_31 title">配送地址</div>
<div class="addrDiv">
<p class="f_14 c_31">是的发财树是</p>
<p class="f_12 c_4B">天津天津市和平区水擦拭订餐撒上天津天津市和平区水擦拭订餐撒上天津天津市和平区水擦拭订餐撒上天津天津市和平区水擦拭订餐撒上天津天津市和平区水擦拭订餐撒上天津天津市和平区水擦拭订餐撒上</p>
<p class="f_12 c_4B">17766667777</p>
</div>
<div class="express">
<p class="f_14 c_31">普通快递</p>
<p class="f_12 c_4B">免费</p>
<p class="f_12 c_4B">预计发货后1-4个工作日送达</p>
</div>
</div>
<div class="payDiv">
<span class="title f_16 c_31">支付方式</span>
<span class="payWay f_12 c_1B" v-if="payWay ==0">
<a-icon type="alipay" />支付宝</span>
<span class="payWay f_12 c_1B" v-if="payWay ==1">
<a-icon type="wechat" />微信</span>
<span class=" f_12 c_31" v-if="!invoice">不需要发票</span>
<span class=" f_12 c_31" v-if="invoice">需要发票</span>
</div>
</div>
<Footer></Footer>
</div>
@ -34,10 +131,24 @@
components: { Header,Footer },
data() {
return {
visible: false,
payWay:'0',//
invoice:true,//
};
},
methods: {
handleBack(){
this.$router.go(-1)
},
showModal() {
this.visible = true;
},
handleOk(e) {
console.log('--')
},
handleCancel(e) {
this.visible = false;
},
},
};
</script>
@ -54,6 +165,9 @@
.c_31{
color: #313131;
}
.c_4B{
color: #4B4B4B;
}
.btnDiv{
justify-content: space-around;
.dialogButton {
@ -83,6 +197,7 @@
}
}
}
.pay{
.bg{
background-image: url("../assets/bg06.png");
@ -94,6 +209,8 @@
}
}
.jz{
padding-top: 20px;
padding-bottom: 100px;
.success{
width: 500px;
margin: 60px auto;
@ -124,11 +241,85 @@
}
.date{
justify-content: space-between;
margin-bottom: 20px;
.f_16{
font-weight: 600;
}
.r{
width:300px;
justify-content: space-between;
}
}
.table{
justify-content: space-between;
padding: 30px 0 30px 20px;
border-bottom: 2px solid #F2F2F2;
.tableImg{
width: 80px;
height: 80px;
background-color: grey;
}
.tableTitle{
max-width: 500px;
.title{
font-weight: 600;
margin-bottom: 8px;
}
.c_999{
margin-bottom: 2px;
}
}
.r{
width:300px;
justify-content: space-between;
}
}
.total{
flex-direction: column;
align-items: flex-end;
padding-top: 48px;
padding-bottom: 27px;
border-bottom: 2px solid #F2F2F2;
.d-flex{
width: 300px;
justify-content: space-between;
margin-bottom: 12px;
}
}
.addr{
padding: 32px 10px;
font-weight: 600;
border-bottom: 2px solid #F2F2F2;
.title{
}
.addrDiv{
margin: 0 80px;
max-width: 500px;
}
}
.payDiv{
padding: 32px 10px;
.title{
font-weight: 600;
}
.payWay{
margin: 0 80px;
i{
border-radius: 2px;
padding:1px;
margin-right: 5px;
}
.anticon-alipay{
background:#08AAFF;
color:#fff;
}
.anticon-wechat{
background:#00B40C;
color:#fff;
}
}
}
}
}
</style>

@ -155,14 +155,16 @@
<div v-if="current == 3">
<PlaceOrder></PlaceOrder>
</div>
<Footer></Footer>
</div>
</template>
<script>
import Header from "../components/Header/HeaderView";
import Footer from "../components/Footer/FooterView";
import PlaceOrder from "../components/Order/placeOrder"
export default {
name: "sirendingzhi",
components: { Header ,PlaceOrder},
components: { Header ,PlaceOrder,Footer},
data() {
return {
current: 3,

@ -0,0 +1,404 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item label="账号">
<!--<a-input placeholder="请输入账号查询" v-model="queryParam.username"></a-input>-->
<j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<a-form-item label="性别">
<a-select v-model="queryParam.sex" placeholder="请选择性别">
<a-select-option value="">请选择</a-select-option>
<a-select-option value="1"></a-select-option>
<a-select-option value="2"></a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<a-form-item label="真实名字">
<a-input placeholder="请输入真实名字" v-model="queryParam.realname"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<a-form-item label="手机号码">
<a-input placeholder="请输入手机号码查询" v-model="queryParam.phone"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<a-form-item label="用户状态">
<a-select v-model="queryParam.status" placeholder="请选择">
<a-select-option value="">请选择</a-select-option>
<a-select-option value="1">正常</a-select-option>
<a-select-option value="2">冻结</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<!-- <a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>-->
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<div class="table-operator" style="border-top: 5px">
<a-button @click="handleAdd" type="primary" icon="plus" >添加用户</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('用户信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<!--<a-button type="primary" icon="import">导入</a-button>-->
</a-upload>
<j-third-app-button biz-type="user" :selected-row-keys="selectedRowKeys" syncToApp syncToLocal @sync-finally="onSyncFinally"/>
<a-button type="primary" icon="hdd" @click="recycleBinVisible=true">回收站</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay" @click="handleMenuClick">
<a-menu-item key="1">
<a-icon type="delete" @click="batchDel"/>
删除
</a-menu-item>
<a-menu-item key="2">
<a-icon type="lock" @click="batchFrozen('2')"/>
冻结
</a-menu-item>
<a-menu-item key="3">
<a-icon type="unlock" @click="batchFrozen('1')"/>
解冻
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<j-super-query :fieldList="superQueryFieldList" @handleSuperQuery="handleSuperQuery"/>
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
bordered
size="middle"
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<template slot="avatarslot" slot-scope="text, record, index">
<div class="anty-img-wrap">
<a-avatar shape="square" :src="getAvatarView(record.avatar)" icon="user"/>
</div>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)" >编辑</a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="openDetail(record.id)">详情</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="handleChangePassword(record.username)">密码</a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="record.status==1">
<a-popconfirm title="确定冻结吗?" @confirm="() => handleFrozen(record.id,2,record.username)">
<a>冻结</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="record.status==2">
<a-popconfirm title="确定解冻吗?" @confirm="() => handleFrozen(record.id,1,record.username)">
<a>解冻</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="handleAgentSettings(record.username)">代理人</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<!-- table区域-end -->
<user-modal ref="modalForm" @ok="modalFormOk"></user-modal>
<password-modal ref="passwordmodal" @ok="passwordModalOk"></password-modal>
<sys-user-agent-modal ref="sysUserAgentModal"></sys-user-agent-modal>
<!-- 用户回收站 -->
<user-recycle-bin-modal :visible.sync="recycleBinVisible" @ok="modalFormOk"/>
<!-- 详情-->
<UserModalDetail ref="UserModalDetail"></UserModalDetail>
</a-card>
</template>
<script>
import UserModal from './modules/UserModal'
import PasswordModal from './modules/PasswordModal'
import {putAction,getFileAccessHttpUrl} from '@/api/manage';
import {frozenBatch} from '@/api/api'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import SysUserAgentModal from "./modules/SysUserAgentModal";
import JInput from '@/components/jeecg/JInput'
import UserRecycleBinModal from './modules/UserRecycleBinModal'
import JSuperQuery from '@/components/jeecg/JSuperQuery'
import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton'
import UserModalDetail from './modules/UserModalDetail'
export default {
name: "User2List1",
mixins: [JeecgListMixin],
components: {
JThirdAppButton,
SysUserAgentModal,
UserModal,
PasswordModal,
JInput,
UserRecycleBinModal,
JSuperQuery,
UserModalDetail
},
data() {
return {
description: '这是用户管理页面',
queryParam: {},
recycleBinVisible: false,
columns: [
/*{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},*/
{
title: '用户账号',
align: "center",
dataIndex: 'userName',
width: 120,
sorter: true
},
{
title: '用户姓名',
align: "center",
width: 100,
dataIndex: 'realName',
},
{
title: '头像',
align: "center",
width: 120,
dataIndex: 'avatar',
scopedSlots: {customRender: "avatarslot"}
},
{
title: '性别',
align: "center",
width: 80,
dataIndex: 'sex_dictText',
sorter: true
},
/*{
title: '生日',
align: "center",
width: 100,
dataIndex: 'birthday'
},*/
{
title: '手机号码',
align: "center",
width: 100,
dataIndex: 'phone'
},
/*{
title: '部门',
align: "center",
width: 180,
dataIndex: 'orgCodeTxt'
},*/
/* {
title: '负责部门',
align: "center",
width: 180,
dataIndex: 'departIds_dictText'
},*/
{
title: '状态',
align: "center",
width: 80,
dataIndex: 'status_dictText'
},
{
title: '操作',
dataIndex: 'action',
scopedSlots: {customRender: 'action'},
align: "center",
width: 170
}
],
superQueryFieldList: [
{ type: 'input', value: 'username', text: '用户账号', },
{ type: 'input', value: 'realname', text: '用户姓名', },
{ type: 'select', value: 'sex', text: '性别', dictCode: 'sex' },
],
url: {
syncUser: "/act/process/extActProcess/doSyncUser",
list: "/zyPerson/allgk",
delete: "/sys/user/delete",
deleteBatch: "/sys/user/deleteBatch",
exportXlsUrl: "/sys/user/exportXls",
importExcelUrl: "sys/user/importExcel",
},
}
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
}
},
methods: {
getAvatarView: function (avatar) {
return getFileAccessHttpUrl(avatar)
},
batchFrozen: function (status) {
if (this.selectedRowKeys.length <= 0) {
this.$message.warning('请选择一条记录!');
return false;
} else {
let ids = "";
let that = this;
let isAdmin = false;
that.selectionRows.forEach(function (row) {
if (row.username == 'admin') {
isAdmin = true;
}
});
if (isAdmin) {
that.$message.warning('管理员账号不允许此操作,请重新选择!');
return;
}
that.selectedRowKeys.forEach(function (val) {
ids += val + ",";
});
that.$confirm({
title: "确认操作",
content: "是否" + (status == 1 ? "解冻" : "冻结") + "选中账号?",
onOk: function () {
frozenBatch({ids: ids, status: status}).then((res) => {
if (res.success) {
that.$message.success(res.message);
that.loadData();
that.onClearSelected();
} else {
that.$message.warning(res.message);
}
});
}
});
}
},
handleMenuClick(e) {
if (e.key == 1) {
this.batchDel();
} else if (e.key == 2) {
this.batchFrozen(2);
} else if (e.key == 3) {
this.batchFrozen(1);
}
},
handleFrozen: function (id, status, username) {
let that = this;
//TODO
if ('admin' == username) {
that.$message.warning('管理员账号不允许此操作!');
return;
}
frozenBatch({ids: id, status: status}).then((res) => {
if (res.success) {
that.$message.success(res.message);
that.loadData();
} else {
that.$message.warning(res.message);
}
});
},
handleChangePassword(username) {
this.$refs.passwordmodal.show(username);
},
handleAgentSettings(username){
this.$refs.sysUserAgentModal.agentSettings(username);
this.$refs.sysUserAgentModal.title = "用户代理人设置";
},
passwordModalOk() {
//TODO datasource
},
onSyncFinally({isToLocal}) {
//
if (isToLocal) {
this.loadData()
}
},
openDetail(id){
this.$refs.UserModalDetail.showModal(id)
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less'
</style>

@ -121,7 +121,9 @@
<a @click="jumpProcesses(record)">工序</a>
<a-divider type="vertical" />
<a @click="handleDetail(record)">模块</a>
<!-- <a @click="handleDetail(record)">模块</a>-->
<a @click="jumpModules(record)">模块</a>
<a-divider type="vertical" />
<a @click="jumpFabrics(record)">面料</a>
@ -335,7 +337,7 @@
deleteBatch: "/zyproduct/zyProduct/deleteBatch",
exportXlsUrl: "/zyproduct/zyProduct/exportXls",
importExcelUrl: "zyproduct/zyProduct/importExcel",
},
dictOptions:{},
superFieldList:[],
@ -354,7 +356,7 @@
},
//
//-
//-
jumpProcesses(record)
{
this.$router.push({
@ -366,14 +368,14 @@
});
},
//-
jumpModules(record)
{
jumpModules(record) {
this.$router.push({
path: '/src/views/product/productModule/ProductModuleList',
// query: { //
path: '/product/productModule/ProductModuleList',
query: { //
'productName': record.productName,
// 'pid': record.id,
// 'tname': record.name,
// }
}
});
},
//-

@ -160,6 +160,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/zygoods/zyGoods/zxdz","anon");
filterChainDefinitionMap.put("/zygoods/zyGoods/tjsp","anon");
filterChainDefinitionMap.put("/zygoods/zyGoods/fzlx","anon");
filterChainDefinitionMap.put("/zygoods/zyGoods/cd","anon");
filterChainDefinitionMap.put("/zygoods/zyGoods/lxlist","anon");
//filterChainDefinitionMap.put("/actTask/**", "anon");
//filterChainDefinitionMap.put("/actProcessIns/**", "anon");

@ -72,6 +72,18 @@ public class ZyClothsTypeController extends JeecgController<ZyClothsType, IZyClo
return Result.OK(pageList);
}
/**
* 根据id拿到服装类型的类型名称
* getTypeNameById
*/
@AutoLog(value = "zy_cloths_type-分页列表查询")
@ApiOperation(value = "zy_cloths_type-分页列表查询", notes = "zy_cloths_type-分页列表查询")
@GetMapping(value = "/getTypeName")
public Result<?> getTypeNameById(@RequestParam(name = "id", required = true)String id){
ZyClothsType zyClothsType = zyClothsTypeService.getById(id);
return Result.OK(zyClothsType.getTypeName());
}
/**
* 添加
*

@ -51,15 +51,16 @@ public class ProductRecordController extends JeecgController<ProductRecord, IPro
@Autowired
private IProductRecordService productRecordService;
/**
* 分页列表查询
*
* @param productRecord
* @param pageNo
* @param pageSize
* @param req
* @return
*/
/**
* 分页列表查询
*
* @param productRecord
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "生产记录表-分页列表查询")
@ApiOperation(value="生产记录表-分页列表查询", notes="生产记录表-分页列表查询")
@GetMapping(value = "/list")

@ -32,66 +32,66 @@ import lombok.experimental.Accessors;
public class ProductRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**工位*/
@Excel(name = "工位", width = 15, dictTable = "station", dicText = "station_name", dicCode = "id")
@Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
private java.lang.String sysOrgCode;
/**工位*/
@Excel(name = "工位", width = 15, dictTable = "station", dicText = "station_name", dicCode = "id")
@Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
@ApiModelProperty(value = "工位")
private String stationId;
/**工位*/
@Excel(name = "工位", width = 15)
private java.lang.String stationId;
/**工位*/
@Excel(name = "工位", width = 15)
@ApiModelProperty(value = "工位")
private String stationName;
/**工单编号*/
@Excel(name = "工单编号", width = 15, dictTable = "findgdbh", dicText = "order_id,order_code", dicCode = "id,orders_num")
@Dict(dictTable = "findgdbh", dicText = "order_id,order_code", dicCode = "id,orders_num")
private java.lang.String stationName;
/**工单编号*/
@Excel(name = "工单编号", width = 15)
@ApiModelProperty(value = "工单编号")
private String orderCode;
/**工单编号*/
@Excel(name = "工单编号", width = 15)
private java.lang.String orderCode;
/**工单编号*/
@Excel(name = "工单编号", width = 15, dictTable = "work_order", dicText = "product_code", dicCode = "id")
@Dict(dictTable = "work_order", dicText = "product_code", dicCode = "id")
@ApiModelProperty(value = "工单编号")
private String orderId;
/**生产开始时间*/
@Excel(name = "生产开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private java.lang.String orderId;
/**生产开始时间*/
@Excel(name = "生产开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "生产开始时间")
private Date workTime;
/**生产结束时间*/
@Excel(name = "生产结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private java.util.Date workTime;
/**生产结束时间*/
@Excel(name = "生产结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "生产结束时间")
private Date offTime;
/**时长*/
@Excel(name = "时长", width = 15)
private java.util.Date offTime;
/**时长*/
@Excel(name = "时长", width = 15)
@ApiModelProperty(value = "时长")
private String duration;
/**状态*/
@Excel(name = "状态", width = 15, dicCode = "cgqzt")
@Dict(dicCode = "cgqzt")
private java.lang.String duration;
/**状态*/
@Excel(name = "状态", width = 15, dicCode = "cgqzt")
@Dict(dicCode = "cgqzt")
@ApiModelProperty(value = "状态")
private String status;
private java.lang.String status;
}

@ -71,6 +71,7 @@ public class Sensor implements Serializable {
private String sensorIp;
/**工位*/
@Excel(name = "工位", width = 15)
@Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
@ApiModelProperty(value = "工位")
private String stationId;
/**工位*/

@ -23,10 +23,7 @@ import org.jeecg.modules.demo.ordergoods.entity.OrderGoods;
import org.jeecg.modules.demo.ordergoods.service.IOrderGoodsService;
import org.jeecg.modules.demo.zyaccessories.entity.ZyStyleAccessories;
import org.jeecg.modules.demo.zyaccessories.service.IZyStyleAccessoriesService;
import org.jeecg.modules.demo.zygoods.entity.Fzlx;
import org.jeecg.modules.demo.zygoods.entity.Tcsp;
import org.jeecg.modules.demo.zygoods.entity.Zxdz;
import org.jeecg.modules.demo.zygoods.entity.ZyGoods;
import org.jeecg.modules.demo.zygoods.entity.*;
import org.jeecg.modules.demo.zygoods.service.IZyGoodsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -526,26 +523,26 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
Page<ZyGoods> page = new Page<ZyGoods>(pageNo, pageSize);
IPage<ZyGoods> pageList = zyGoodsService.page(page, queryWrapper);
List<Fzlx> nfzlxList = new ArrayList<Fzlx>();
for(int i = 0 ; i < pageList.getRecords().size();i++){
for(int j = 0 ; j < pageList.getRecords().size();j++){
Fzlx fzlx = new Fzlx();
fzlx.setId(pageList.getRecords().get(i).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageList.getRecords().get(i).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageList.getRecords().get(i).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageList.getRecords().get(i).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageList.getRecords().get(i).getStyleId()).getCharacteristic();
fzlx.setId(pageList.getRecords().get(j).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageList.getRecords().get(j).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageList.getRecords().get(j).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageList.getRecords().get(j).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageList.getRecords().get(j).getStyleId()).getCharacteristic();
if(tag1.length()>7){
fzlx.setTag1(tag1.substring(0,7)+"...");
}else{
fzlx.setTag1(tag1);
}
String tag2 = zyClothsStyleService.getById(pageList.getRecords().get(i).getStyleId()).getStructure();
String tag2 = zyClothsStyleService.getById(pageList.getRecords().get(j).getStyleId()).getStructure();
if(tag2.length()>7){
fzlx.setTag2(tag2.substring(0,7)+"...");
}else{
fzlx.setTag2(tag2);
}
fzlx.setPrice(pageList.getRecords().get(i).getUnitPrice());
fzlx.setSold(pageList.getRecords().get(i).getNum());
fzlx.setPrice(pageList.getRecords().get(j).getUnitPrice());
fzlx.setSold(pageList.getRecords().get(j).getNum());
nfzlxList.add(fzlx);
}
map.put("nz",nfzlxList);
@ -558,8 +555,8 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
queryWrapperzlt2n.eq("type_id",zyClothsType2n.getId());
List<ZyClothsType> listzctn = zyClothsTypeService.list(queryWrapperzlt2n);
String idsn = "";
for (int i = 0 ; i < listzctn.size() ; i++){
idsn = idsn + listzctn.get(i).getId()+",";
for (int k = 0 ; k < listzctn.size() ; k++){
idsn = idsn + listzctn.get(k).getId()+",";
}
String [] strn = idsn.substring(0,idsn.length()-1).split(",");
QueryWrapper<ZyGoods> queryWrappern = QueryGenerator.initQueryWrapper(zyGoods, req.getParameterMap());
@ -567,26 +564,26 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
Page<ZyGoods> pagen = new Page<ZyGoods>(pageNo, pageSize);
IPage<ZyGoods> pageListn = zyGoodsService.page(pagen, queryWrappern);
List<Fzlx> nfzlxListn = new ArrayList<Fzlx>();
for(int i = 0 ; i < pageListn.getRecords().size();i++){
for(int l = 0 ; l < pageListn.getRecords().size();l++){
Fzlx fzlx = new Fzlx();
fzlx.setId(pageListn.getRecords().get(i).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageListn.getRecords().get(i).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageListn.getRecords().get(i).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageListn.getRecords().get(i).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageListn.getRecords().get(i).getStyleId()).getCharacteristic();
fzlx.setId(pageListn.getRecords().get(l).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageListn.getRecords().get(l).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageListn.getRecords().get(l).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageListn.getRecords().get(l).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageListn.getRecords().get(l).getStyleId()).getCharacteristic();
if(tag1.length()>7){
fzlx.setTag1(tag1.substring(0,7)+"...");
}else{
fzlx.setTag1(tag1);
}
String tag2 = zyClothsStyleService.getById(pageListn.getRecords().get(i).getStyleId()).getStructure();
String tag2 = zyClothsStyleService.getById(pageListn.getRecords().get(l).getStyleId()).getStructure();
if(tag2.length()>7){
fzlx.setTag2(tag2.substring(0,7)+"...");
}else{
fzlx.setTag2(tag2);
}
fzlx.setPrice(pageListn.getRecords().get(i).getUnitPrice());
fzlx.setSold(pageListn.getRecords().get(i).getNum());
fzlx.setPrice(pageListn.getRecords().get(l).getUnitPrice());
fzlx.setSold(pageListn.getRecords().get(l).getNum());
nfzlxListn.add(fzlx);
}
map.put("nvz",nfzlxListn);
@ -599,8 +596,8 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
queryWrapperzlt2t.eq("type_id",zyClothsType2t.getId());
List<ZyClothsType> listzctt = zyClothsTypeService.list(queryWrapperzlt2t);
String idst = "";
for (int i = 0 ; i < listzctt.size() ; i++){
idst = idst + listzctt.get(i).getId()+",";
for (int m = 0 ; m < listzctt.size() ; m++){
idst = idst + listzctt.get(m).getId()+",";
}
String [] strt = idst.substring(0,idst.length()-1).split(",");
QueryWrapper<ZyGoods> queryWrappert = QueryGenerator.initQueryWrapper(zyGoods, req.getParameterMap());
@ -608,30 +605,133 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
Page<ZyGoods> paget = new Page<ZyGoods>(pageNo, pageSize);
IPage<ZyGoods> pageListt = zyGoodsService.page(paget, queryWrappert);
List<Fzlx> nfzlxListt = new ArrayList<Fzlx>();
for(int i = 0 ; i < pageListt.getRecords().size();i++){
for(int n = 0 ; n < pageListt.getRecords().size();n++){
Fzlx fzlx = new Fzlx();
fzlx.setId(pageListt.getRecords().get(i).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageListt.getRecords().get(i).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageListt.getRecords().get(i).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageListt.getRecords().get(i).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageListt.getRecords().get(i).getStyleId()).getCharacteristic();
fzlx.setId(pageListt.getRecords().get(n).getId());
fzlx.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageListt.getRecords().get(n).getGoodsPicture());
fzlx.setTitle1(zyClothsTypeService.getById(pageListt.getRecords().get(n).getClothsTypeId()).getTypeName());
fzlx.setTitle2(pageListt.getRecords().get(n).getGoodsName());
String tag1 = zyClothsStyleService.getById(pageListt.getRecords().get(n).getStyleId()).getCharacteristic();
if(tag1.length()>7){
fzlx.setTag1(tag1.substring(0,7)+"...");
}else{
fzlx.setTag1(tag1);
}
String tag2 = zyClothsStyleService.getById(pageListt.getRecords().get(i).getStyleId()).getStructure();
String tag2 = zyClothsStyleService.getById(pageListt.getRecords().get(n).getStyleId()).getStructure();
if(tag2.length()>7){
fzlx.setTag2(tag2.substring(0,7)+"...");
}else{
fzlx.setTag2(tag2);
}
fzlx.setPrice(pageListt.getRecords().get(i).getUnitPrice());
fzlx.setSold(pageListt.getRecords().get(i).getNum());
fzlx.setPrice(pageListt.getRecords().get(n).getUnitPrice());
fzlx.setSold(pageListt.getRecords().get(n).getNum());
nfzlxListt.add(fzlx);
}
map.put("tz",nfzlxListt);
return Result.OK(map);
}
/**
* 商城接口服装类型菜单
*
* @param req
* @return
*/
@AutoLog(value = "类型菜单")
@ApiOperation(value="类型菜单", notes="类型菜单")
@GetMapping(value = "/cd")
public Result<?> cd(HttpServletRequest req) {
List<Map<String,Object>> maplist = new ArrayList<>();
//男装
ZyClothsType zyClothsType = new ZyClothsType();
QueryWrapper<ZyClothsType> queryWrapperzlt1 = QueryGenerator.initQueryWrapper(zyClothsType, req.getParameterMap());
queryWrapperzlt1.eq("type_name","男装");
ZyClothsType zyClothsType2 = zyClothsTypeService.getOne(queryWrapperzlt1);
Map<String,Object> map1 = new HashMap<>();
map1.put("id",zyClothsType2.getId());
map1.put("name",zyClothsType2.getTypeName());
//男装子类
QueryWrapper<ZyClothsType> queryWrapperzlt2 = QueryGenerator.initQueryWrapper(zyClothsType, req.getParameterMap());
queryWrapperzlt2.eq("type_id",zyClothsType2.getId());
List<ZyClothsType> listzct = zyClothsTypeService.list(queryWrapperzlt2);
List<Map<String,Object>> tcspList1 = new ArrayList<>();
for (int i = 0 ; i < listzct.size() ; i++){
Map<String,Object> map2 = new HashMap<>();
map2.put("id",listzct.get(i).getId());
map2.put("name",listzct.get(i).getTypeName());
tcspList1.add(map2);
}
map1.put("childrens",tcspList1);
maplist.add(map1);
//女装
ZyClothsType zyClothsTypen = new ZyClothsType();
QueryWrapper<ZyClothsType> queryWrapperzlt1n = QueryGenerator.initQueryWrapper(zyClothsTypen, req.getParameterMap());
queryWrapperzlt1n.eq("type_name","女装");
ZyClothsType zyClothsType2n = zyClothsTypeService.getOne(queryWrapperzlt1n);
Map<String,Object> mapnz = new HashMap<>();
mapnz.put("id",zyClothsType2n.getId());
mapnz.put("name",zyClothsType2n.getTypeName());
//女装子类
QueryWrapper<ZyClothsType> queryWrapperzlt2n = QueryGenerator.initQueryWrapper(zyClothsTypen, req.getParameterMap());
queryWrapperzlt2n.eq("type_id",zyClothsType2n.getId());
List<ZyClothsType> listzctn = zyClothsTypeService.list(queryWrapperzlt2n);
List<Map<String,Object>> tcspList2 = new ArrayList<>();
for (int j = 0 ; j < listzctn.size() ; j++){
Map<String,Object> map3 = new HashMap<>();
map3.put("id",listzctn.get(j).getId());
map3.put("name",listzctn.get(j).getTypeName());
tcspList2.add(map3);
}
mapnz.put("childrens",tcspList2);
maplist.add(mapnz);
//童装
ZyClothsType zyClothsTypet = new ZyClothsType();
QueryWrapper<ZyClothsType> queryWrapperzlt1t = QueryGenerator.initQueryWrapper(zyClothsTypet, req.getParameterMap());
queryWrapperzlt1t.eq("type_name","童装");
ZyClothsType zyClothsType2t = zyClothsTypeService.getOne(queryWrapperzlt1t);
Map<String,Object> maptz = new HashMap<>();
maptz.put("id",zyClothsType2t.getId());
maptz.put("name",zyClothsType2t.getTypeName());
//童装子类
QueryWrapper<ZyClothsType> queryWrapperzlt2t = QueryGenerator.initQueryWrapper(zyClothsTypet, req.getParameterMap());
queryWrapperzlt2t.eq("type_id",zyClothsType2t.getId());
List<ZyClothsType> listzctt = zyClothsTypeService.list(queryWrapperzlt2t);
List<Map<String,Object>> tcspList3 = new ArrayList<>();
for (int m = 0 ; m < listzctt.size() ; m++){
Map<String,Object> map4= new HashMap<>();
map4.put("id",listzctt.get(m).getId());
map4.put("name",listzctt.get(m).getTypeName());
tcspList3.add(map4);
}
maptz.put("childrens",tcspList3);
maplist.add(maptz);
return Result.OK(maplist);
}
/**
* 商城接口服装类型查询
*
* @param zyGoods
* @param req
* @return
*/
@AutoLog(value = "服装类型查询")
@ApiOperation(value="服装类型查询", notes="服装类型查询")
@GetMapping(value = "/lxlist")
public Result<?> lxlist(ZyGoods zyGoods,HttpServletRequest req,@RequestParam(name="typeid",required=true) String typeid) {
QueryWrapper<ZyGoods> queryWrapper = QueryGenerator.initQueryWrapper(zyGoods, req.getParameterMap());
queryWrapper.eq("cloths_type_id",typeid);
List<ZyGoods> pageList = zyGoodsService.list(queryWrapper);
List<FzlxSp> listsp = new ArrayList<>();
for (int i = 0 ; i < pageList.size() ; i++){
FzlxSp fzlxSp = new FzlxSp();
fzlxSp.setId(pageList.get(i).getId());
fzlxSp.setImgUrl("http://localhost:10085/jeecg-boot/sys/common/static/"+pageList.get(i).getGoodsPicture());
fzlxSp.setCurrentPrice(pageList.get(i).getPromotionPrice());
fzlxSp.setHistoricalPrice(pageList.get(i).getUnitPrice());
fzlxSp.setTitle(pageList.get(i).getGoodsName());
fzlxSp.setHeat(pageList.get(i).getClick());
listsp.add(fzlxSp);
}
return Result.OK(listsp);
}
}

@ -0,0 +1,55 @@
package org.jeecg.modules.demo.zygoods.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 商品表
* @Author: jeecg-boot
* @Date: 2022-12-07
* @Version: V1.0
*/
@Data
public class FzlxSp implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**商品图片*/
@Excel(name = "商品图片", width = 15)
@ApiModelProperty(value = "商品图片")
private java.lang.String imgUrl;
/**折扣价*/
@Excel(name = "折扣价", width = 15)
@ApiModelProperty(value = "折扣价")
private java.lang.Double currentPrice;
/**单价*/
@Excel(name = "单价", width = 15)
@ApiModelProperty(value = "单价")
private java.lang.Double historicalPrice;
/**商品名称*/
@Excel(name = "商品名称", width = 15)
@ApiModelProperty(value = "商品名称")
private java.lang.String title;
/**热度*/
@Excel(name = "热度", width = 15)
@ApiModelProperty(value = "热度")
private java.lang.String heat;
}

@ -141,4 +141,9 @@ public class ZyGoods implements Serializable {
@Excel(name = "销售数量", width = 15)
@ApiModelProperty(value = "销售数量")
private java.lang.Integer num;
/**点击量*/
@Excel(name = "点击量", width = 15)
@ApiModelProperty(value = "点击量")
private java.lang.String click;
}

@ -11,6 +11,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.hanger.entity.HangRecord;
import org.jeecg.modules.hanger.entity.ZyHangPoint;
import org.jeecg.modules.hanger.service.IHangRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -56,6 +57,18 @@ public class HangRecordController extends JeecgController<HangRecord, IHangRecor
return Result.OK(pageList);
}
/**
* 根据吊挂编号-增量同步吊挂运行记录
* @param hangRecord
* @return
*/
@ApiOperation(value = "吊挂工位表-同步生产记录表数据到吊挂运行记录表", notes = "吊挂工位表-同步生产记录表数据到吊挂运行记录表")
@PutMapping(value = "/syncHangRecord")
public Result<?> syncHangRecord(@RequestBody HangRecord hangRecord) {
hangRecordService.syncHangRecord(hangRecord);
return Result.OK();
}
/**
* 添加
*

@ -65,14 +65,6 @@ public class ZyHangPointController extends JeecgController<ZyHangPoint, IZyHangP
return Result.OK(zyHangPointService.getLastPointCode());
}
@ApiOperation(value = "吊挂工位表-同步生产记录表数据到吊挂运行记录表", notes = "吊挂工位表-同步生产记录表数据到吊挂运行记录表")
@GetMapping(value = "/syncHangRecord")
public Result<?> syncHangRecord(ZyHangPoint zyHangPoint) {
zyHangPointService.syncHangRecord(zyHangPoint);
return Result.OK();
}
@ApiOperation(value = "吊挂工位表-工站、工位绑定批量添加", notes = "吊挂工位表-工站、工位绑定批量添加")
@PostMapping(value = "/addBatch")
public Result<?> addBatch(@RequestBody List<ZyHangPoint> pointList) {

@ -100,12 +100,12 @@ public class HangRecord implements Serializable {
*/
@Excel(name = "时长", width = 15)
@ApiModelProperty(value = "时长")
private Integer duration;
private String duration;
/**
* 状态
*/
@Excel(name = "状态", width = 15)
@ApiModelProperty(value = "状态")
@Dict(dicCode = "hang_record_status")
private Integer status;
private String status;
}

@ -11,5 +11,5 @@ import org.jeecg.modules.hanger.entity.HangRecord;
* @Version: V1.0
*/
public interface IHangRecordService extends IService<HangRecord> {
void syncHangRecord(HangRecord hangRecord);
}

@ -17,6 +17,4 @@ public interface IZyHangPointService extends IService<ZyHangPoint> {
String getLastPointCode();
void addBatch(List<ZyHangPoint> pointList);
void syncHangRecord(ZyHangPoint zyHangPoint);
}

@ -1,11 +1,28 @@
package org.jeecg.modules.hanger.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
import org.jeecg.modules.demo.productrecord.service.IProductRecordService;
import org.jeecg.modules.hanger.entity.HangRecord;
import org.jeecg.modules.hanger.entity.ZyHang;
import org.jeecg.modules.hanger.entity.ZyHangPoint;
import org.jeecg.modules.hanger.mapper.HangRecordMapper;
import org.jeecg.modules.hanger.service.IHangRecordService;
import org.jeecg.modules.hanger.service.IZyHangPointService;
import org.jeecg.modules.hanger.service.IZyHangService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
/**
* @Description: 吊挂运行记录表
@ -16,4 +33,62 @@ import org.springframework.stereotype.Service;
@Service
public class HangRecordServiceImpl extends ServiceImpl<HangRecordMapper, HangRecord> implements IHangRecordService {
@Autowired
private IZyHangService iZyHangService;
@Autowired
private IZyHangPointService iZyHangPointService;
@Autowired
private IProductRecordService iProductRecordService;
@Override
@Transactional(readOnly = false, rollbackFor = Exception.class)
public void syncHangRecord(HangRecord hangRecord) {
ZyHang one = iZyHangService.getOne(new LambdaQueryWrapper<ZyHang>().eq(ZyHang::getCode, hangRecord.getHangCode()));
Optional.ofNullable(one).orElseThrow(() -> new JeecgBootException("吊挂不存在!"));
List<ZyHangPoint> pointList = iZyHangPointService.list(new LambdaQueryWrapper<ZyHangPoint>().eq(ZyHangPoint::getCode, hangRecord.getHangCode()));
//没有配置工站时,不同步运行记录
if (ObjectUtils.isEmpty(pointList)) return;
//查询每一工站是否已有同步过的工站运行记录数据,
// 有同步过则根据生产记录表创建时间为条件增量同步,
// 未同步过则全量同步
pointList.forEach(e -> {
List<HangRecord> saveList;
List<HangRecord> pointRecordList = this.list(new LambdaQueryWrapper<HangRecord>()
.eq(HangRecord::getHangCode, hangRecord.getHangCode())
.eq(HangRecord::getPoint, e.getPoint())
.orderByDesc(HangRecord::getCreateTime)
);
if (!ObjectUtils.isEmpty(pointRecordList)) {//该工站已同步过,增量同步
Date createTime = pointRecordList.get(0).getCreateTime();
List<ProductRecord> productRecords = iProductRecordService.list(new LambdaQueryWrapper<ProductRecord>()
.eq(ProductRecord::getStationId, e.getStationId())
.gt(ProductRecord::getCreateTime, createTime)
);
saveList = this.convertHangRecord(one.getCode(), e.getPoint(), productRecords);
} else {//该工站未同步过
List<ProductRecord> productRecords = iProductRecordService.list(new LambdaQueryWrapper<ProductRecord>()
.eq(ProductRecord::getStationId, e.getStationId())
);
saveList = this.convertHangRecord(one.getCode(), e.getPoint(), productRecords);
}
this.saveBatch(saveList);
});
}
private List<HangRecord> convertHangRecord(final String hangCode, final String point, List<ProductRecord> productRecords) {
List<HangRecord> saveList = new LinkedList<>();
Optional.ofNullable(productRecords).orElse(new LinkedList<>()).forEach(obj -> {
HangRecord hangRecord1 = new HangRecord();
BeanUtils.copyProperties(obj, hangRecord1);
hangRecord1.setHangCode(hangCode);
hangRecord1.setPoint(point);
hangRecord1.setId(null);
saveList.add(hangRecord1);
});
return saveList;
}
}

@ -4,12 +4,9 @@ package org.jeecg.modules.hanger.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.hanger.entity.ZyHang;
import org.jeecg.modules.hanger.entity.ZyHangPoint;
import org.jeecg.modules.hanger.mapper.ZyHangPointMapper;
import org.jeecg.modules.hanger.service.IZyHangPointService;
import org.jeecg.modules.hanger.service.IZyHangService;
import org.jeecg.modules.team.entity.Station;
import org.jeecg.modules.team.service.IStationService;
import org.springframework.beans.factory.annotation.Autowired;
@ -32,9 +29,6 @@ public class ZyHangPointServiceImpl extends ServiceImpl<ZyHangPointMapper, ZyHan
@Autowired
private IStationService iStationService;
@Autowired
private IZyHangService iZyHangService;
@Override
public String getLastPointCode() {
List<ZyHangPoint> pointList = this.list(new LambdaQueryWrapper<ZyHangPoint>().orderByDesc(ZyHangPoint::getPoint));
@ -63,11 +57,4 @@ public class ZyHangPointServiceImpl extends ServiceImpl<ZyHangPointMapper, ZyHan
});
this.saveOrUpdateBatch(pointList);
}
@Override
public void syncHangRecord(ZyHangPoint zyHangPoint) {
ZyHang zyHang = iZyHangService.getOne(new LambdaQueryWrapper<ZyHang>().eq(ZyHang::getCode, zyHangPoint.getCode()));
Optional.ofNullable(zyHang).orElseThrow(() -> new JeecgBootException(zyHangPoint.getCode() + "不存在"));
//TODO
}
}

@ -2,6 +2,7 @@ package org.jeecg.modules.product.productModule.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -43,31 +44,38 @@ public class ProductModule implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
// /**更新人*/
// @ApiModelProperty(value = "更新人")
// private String updateBy;
// /**更新日期*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value = "更新日期")
// private Date updateTime;
// /**所属部门*/
// @ApiModelProperty(value = "所属部门")
// private String sysOrgCode;
/**产品id*/
/**
* 产品id 应该是产品编号
* 关联产品表 zy_product ZyProductList.vue ZyProduct.java
*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
private String productId;
/**款式模块id*/
@TableField(exist = false)
private String productName;
/**
* 款式模块id 应该是模块编号
* 关联款式模块表 zy_style_module
* 款式表联动筛选款式模块表数据
*/
@Excel(name = "款式模块id", width = 15)
@ApiModelProperty(value = "款式模块id")
private String styleModuleId;
/**模块id*/
@Excel(name = "模块id", width = 15)
/**
* 模块id 应该是模块名称
* 关联制衣模块表 zy_cloths_modular
* 从款式模块表同步读取
*/
@Excel(name = "模块名称", width = 15)
@Dict(dictTable = "zy_cloths_modular ", dicText = "modular_name", dicCode = "id")
@ApiModelProperty(value = "模块id")
@ApiModelProperty(value = "模块名称")
private String moduleId;
/**部位*/
/**
* 暂时弃用
* 部位
*/
@Excel(name = "部位", width = 15)
@ApiModelProperty(value = "部位")
private String place;

@ -33,6 +33,8 @@ import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.model.DepartIdModel;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.*;
import org.jeecg.modules.system.vo.Grzx1;
import org.jeecg.modules.system.vo.Grzx2;
import org.jeecg.modules.system.vo.SysDepartUsersVO;
import org.jeecg.modules.system.vo.SysUserRoleVO;
import org.jeecg.modules.team.entity.Groupx;
@ -1491,4 +1493,58 @@ public class SysUserController {
}
/**
* 根据用户名修改手机号
*
* @param json
* @return
*/
@RequestMapping(value = "/getusername", method = RequestMethod.GET)
public Result<?> changMobile1() {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = loginUser.getUsername();
return Result.ok(username);
}
/**
* 个人中心
*
* @param json
* @return
*/
@RequestMapping(value = "/findgoods", method = RequestMethod.GET)
public Result<?> findgoods() {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userid = loginUser.getUsername();
List<Grzx1> gr1 = new ArrayList<>();
List<Grzx2> gr2 = new ArrayList<>();
gr1 =sysUserService.getallgr1(userid);
for (int i=0;i<gr1.size();i++){
Grzx2 g2 = new Grzx2();
g2.setId(gr1.get(i).getId());
g2.setOrderNum(gr1.get(i).getTotalNum());
g2.setPay("false");
g2.setReceipt("false");
g2.setUrl(gr1.get(i).getDefaultPicture());
g2.setName(gr1.get(i).getGoodsName());
g2.setType(gr1.get(i).getStyleNames());
g2.setSize(gr1.get(i).getModelNumber());
g2.setNum(gr1.get(i).getGoodsNum());
g2.setPrice(gr1.get(i).getUnitPrice());
g2.setMaterial(gr1.get(i).getName()+","+gr1.get(i).getTypeName());
g2.setTotal(gr1.get(i).getPayTotalPrice());
gr2.add(g2);
}
return Result.ok(gr2);
}
/* public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
Groupx groupx = groupxService.getById(id);
return Result.OK(groupx);
}*/
}

@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.system.entity.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.vo.Grzx1;
import org.jeecg.modules.system.vo.SysUserDepVo;
import java.util.List;
@ -152,4 +153,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return
*/
List<SysUser> queryByDepIds(@Param("departIds") List<String> departIds, @Param("username") String username);
List<Grzx1> getallgr1(String userid);
}

@ -45,7 +45,7 @@
and username = #{username}
</if>
</select>
<!-- 修改用户部门code -->
<update id="updateUserDepart">
UPDATE sys_user SET org_code = #{orgCode} where username = #{username}
@ -55,7 +55,7 @@
<select id="getUserByPhone" resultType="org.jeecg.modules.system.entity.SysUser">
select * from sys_user where phone = #{phone} and del_flag = 0
</select>
<!-- 根据邮箱查询用户信息 -->
<select id="getUserByEmail" resultType="org.jeecg.modules.system.entity.SysUser">
select * from sys_user where email = #{email} and del_flag = 0
@ -162,4 +162,21 @@
and username != #{username}
</if>
</select>
</mapper>
<!-- 根据用户名查询 -->
<select id="getallgr1" resultType="org.jeecg.modules.system.vo.Grzx1">
SELECT og.id, zo.total_num , zg.goods_name , zcs.style_names,zsm.model_number,og.goods_num,zf.name,za.type_name,zg.default_picture,og.pay_total_price,og.unit_price FROM zy_order AS zo
INNER JOIN order_goods AS og ON zo.id = og.orders_id
LEFT JOIN zy_goods AS zg ON og.goods_id = zg.id
LEFT JOIN zy_cloths_style AS zcs ON og.style_id = zcs.id
LEFT JOIN zy_style_model AS zsm ON og.model_id = zsm.id
LEFT JOIN order_goods_fabric AS ogf ON ogf.order_goods_id = og.id
LEFT JOIN zy_fabric AS zf ON ogf.fabric_id = zf.id
LEFT JOIN order_goods_accessories AS oga ON oga.order_goods_id = og.id
LEFT JOIN zy_accessories AS za ON oga.accessories_id = za.id
WHERE og.create_by=#{userid}
</select>
</mapper>

@ -9,6 +9,7 @@ import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.SysUserCacheInfo;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.vo.Grzx1;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
@ -253,4 +254,5 @@ public interface ISysUserService extends IService<SysUser> {
/** userId转为username */
List<String> userIdToUsername(Collection<String> userIdList);
List<Grzx1> getallgr1(String userid);
}

@ -20,6 +20,7 @@ import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.mapper.*;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.Grzx1;
import org.jeecg.modules.system.vo.SysUserDepVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
@ -542,4 +543,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
}
@Override
public List<Grzx1> getallgr1(String userid) {
return userMapper.getallgr1(userid);
}
}

@ -0,0 +1,32 @@
package org.jeecg.modules.system.vo;
import lombok.Data;
@Data
public class Grzx1 {
//这个类主要适用于个人中心,主要目的是个人中心的全部订单页面,注意这里不是详情页,是列表的数据获取
private String id;
//订单编号
private String totalNum;
//商品名称
private String goodsName;
//商品款式
private String styleNames;
//商品尺码
private String modelNumber;
//商品数量
private String goodsNum;
//商品数量
private String name;
//面料
private String typeName;
//商品图片
private String defaultPicture;
//总价
private String payTotalPrice;
//单价
private String unitPrice;
}

@ -0,0 +1,32 @@
package org.jeecg.modules.system.vo;
import lombok.Data;
@Data
public class Grzx2 {
//这个类主要适用于个人中心,主要目的是个人中心的全部订单页面,注意这里不是详情页,是列表的数据展示
private String id;
//订单编号
private String orderNum;
//商品名称
private String pay;
//商品款式
private String receipt;
//商品尺码
private String url;
//商品数量
private String name;
//商品数量
private String type;
//面料
private String size;
//商品图片
private String num;
//总价
private String price;
private String material;
private String total;
}
Loading…
Cancel
Save