初始化仓库

This commit is contained in:
tao
2025-12-18 14:11:48 +08:00
parent e96f277a68
commit 54ec472bd4
1107 changed files with 158756 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
## 2.0.02023-06-20
组件优化

View File

@@ -0,0 +1,184 @@
<template>
<view>
<view style="display: flex; width: 100vw;">
<uni-search-bar style="width: calc(100vw - 52px);margin-top: 20px;padding: 10px;" bgColor="#FFFFFF"
:placeholder="searchPlaceHolder" ref="searchBar" radius="100" v-model="searchText"
cancelButton="none" />
<view style="width: 52px; line-height: 60px;" @click="goSearchClick()"> 搜索 </view>
</view>
<view style="display: flex; margin-top: -6px;" v-if="hisSeen">
<view class="hotSearchTitV"> 历史记录 </view>
<image @click="deleteHisClick()"
style="margin-left: calc(100vw - 222px);width: 30px;height: 30px;margin-top: 6px;"
src="./delete_icon.png"></image>
</view>
<view class="upView" v-if="hisSeen"
style="overflow: hidden; flex: 1; flex-wrap: wrap; width: calc(100vw - 20px); margin-top:2px;">
<!-- 自定义了一个data-id的属性,可以通过js获取到它的值! hover-class 指定按下去的样式类-->
<view class="cellView" v-for="(tagItem, index) in hisList" :key="index" @click="selHisClick(tagItem)">
{{tagItem}}
</view>
</view>
</view>
</template>
<script>
// import uniSearchBar from './uni-search-bar/uni-search-bar.vue';
import data from './data.json'
export default {
components: {
// uniSearchBar
},
props: {
searchPlaceHolder: {
type: String,
default: ""
},
keyStr: {
type: String,
default: ""
},
focus: {
type: Boolean,
// default: true
}
},
data() {
return {
hisList: [],
hisSeen: false,
searchText: '',
resultList: [],
dataList: data
}
},
mounted() {
let hisArrStr = uni.getStorageSync(this.keyStr);
console.log('hisArrStr = ' + hisArrStr);
this.hisSeen = (hisArrStr.length > 0);
this.hisList = hisArrStr.split(',');
},
methods: {
onblur() {
this.focus = false
},
selHisClick(item) {
this.$emit('hisClick', item)
},
deleteHisClick() {
let myThis = this;
uni.showModal({
confirmText: '清空',
cancelText: '忽略',
content: '清空后将无法恢复',
title: "确认清空所有历史记录",
success: function(res) {
if (res.confirm) {
console.log('清理数据');
uni.removeStorageSync(myThis.keyStr);
myThis.hisSeen = false;
myThis.hisList = [];
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
goSearchClick(item) {
this.searchText = String(this.searchText)
console.log('搜索值 = ' + this.searchText);
if (this.searchText == undefined || this.searchText == '') {
return;
}
this.$emit('searchClick', this.searchText)
// 存储历史记录
let hisArrStr = uni.getStorageSync(this.keyStr);
let hisArr = hisArrStr.split(',');
let selIndex = hisArr.indexOf(this.searchText);
if (selIndex < 0) {
if ((hisArrStr).length > 0) {
uni.setStorageSync(this.keyStr, this.searchText + ',' + hisArrStr);
} else {
uni.setStorageSync(this.keyStr, this.searchText);
}
} else {
hisArr.splice(selIndex, 1);
hisArrStr = hisArr.join(",");
uni.setStorageSync(this.keyStr, this.searchText + ',' + hisArrStr);
}
},
}
}
</script>
<style scoped>
uni-view {
box-sizing: content-box;
}
.hotSearchTitV {
margin-left: 14px;
margin-top: 4px;
width: 170px;
height: 22px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #161616;
line-height: 22px;
}
.upView {
display: flex;
flex-direction: row;
height: auto;
margin-left: 4px;
}
.cellView {
height: 16px;
line-height: 16px;
text-align: center;
padding: 6px 10px !important;
margin-top: 10px;
font-size: 12px;
margin-left: 10px;
border-radius: 2px;
background-color: white;
}
</style>

View File

@@ -0,0 +1,304 @@
[
{
"path": "pages/mes/jobReport/pass",
"style": {
"navigationBarTitleText": "合格品报工"
}
}, {
"path": "pages/mes/jobReport/defect",
"style": {
"navigationBarTitleText": "不良品报工"
}
}, {
"path": "pages/mes/jobReport/scrap",
"style": {
"navigationBarTitleText": "报废品报工"
}
},{
"path": "pages/mes/jobReport/loss",
"style": {
"navigationBarTitleText": "损耗报工"
}
},{
"path": "pages/mes/jobReport/onceReport",
"style": {
"navigationBarTitleText": "一次性报工"
}
},{
"path": "pages/mes/jobReport/pwoReport",
"style": {
"navigationBarTitleText": "工单报工"
}
}, {
"path": "pages/mes/jobCv/jobIn",
"style": {
"navigationBarTitleText": "上机转入"
}
}, {
"path": "pages/mes/jobCv/pwoDraw",
"style": {
"navigationBarTitleText": "领料转移单"
}
}, {
"path": "pages/mes/jobCv/pwoIn",
"style": {
"navigationBarTitleText": "完工转移单"
}
}, {
"path": "pages/mes/jobCv/pwoWarehousing",
"style": {
"navigationBarTitleText": "工单入库"
}
},{
"path": "pages/mes/jobCv/jobBindEqp",
"style": {
"navigationBarTitleText": "切换设备"
}
},{
"path": "pages/mes/jobCv/pieceReport",
"style": {
"navigationBarTitleText": "件号报工"
}
},{
"path": "pages/mes/jobCv/pieceIn",
"style": {
"navigationBarTitleText": "件号转入"
}
},{
"path": "pages/mes/jobCv/pwoClose",
"style": {
"navigationBarTitleText": "工单人工关闭"
}
},{
"path": "pages/mes/jobCv/pwoSearch",
"style": {
"navigationBarTitleText": "工单状态查询"
}
},{
"path": "pages/wms/purchase/purchaseSh",
"style": {
"navigationBarTitleText": "采购收货单"
}
},{
"path": "pages/wms/purchase/purchaseRk",
"style": {
"navigationBarTitleText": "采购入库单"
}
},{
"path": "pages/wms/purchase/purchaseQualityT",
"style": {
"navigationBarTitleText": "采购质检"
}
},{
"path": "pages/wms/pdcIn/pdcInQualityT",
"style": {
"navigationBarTitleText": "产品质检"
}
},{
"path": "pages/wms/pdcIn/pdcRk",
"style": {
"navigationBarTitleText": "产品入库单"
}
},{
"path": "pages/wms/pdcIn/directRk",
"style": {
"navigationBarTitleText": "直接入库单"
}
},{
"path": "pages/wms/pdcIn/pdcSh",
"style": {
"navigationBarTitleText": "产品收货单"
}
},{
"path": "pages/wms/pdcMaterial/pdcCk",
"style": {
"navigationBarTitleText": "领料出库单"
}
},{
"path": "pages/wms/pdcMaterial/pdcPick",
"style": {
"navigationBarTitleText": "领料拣货单"
}
},{
"path": "pages/wms/pdcMaterial/directCk",
"style": {
"navigationBarTitleText": "直接出库单"
}
},{
"path": "pages/wms/pdcMaterial/confirmNum",
"style": {
"navigationBarTitleText": "出库确认数量"
}
},{
"path": "pages/wms/sale/saleCk",
"style": {
"navigationBarTitleText": "销售出库单"
}
},{
"path": "pages/wms/sale/salePick",
"style": {
"navigationBarTitleText": "销售拣货单"
}
},{
"path": "pages/srm/antiCrossCargoIn",
"style": {
"navigationBarTitleText": "防串货录入"
}
},{
"path": "pages/srm/antiiCrossCargoQuery",
"style": {
"navigationBarTitleText": "防串货查询"
}
},{
"path": "pages/wms/inventory/inventorySheet",
"style": {
"navigationBarTitleText": "盘点单"
}
},{
"path": "pages/qc/fqc",
"style": {
"navigationBarTitleText": "生产入库检"
}
},
{
"path": "pages/qc/ipqc",
"style": {
"navigationBarTitleText": "生产过程检"
}
},{
"path": "pages/qc/iqc",
"style": {
"navigationBarTitleText": "采购入库检"
}
},{
"path": "pages/qc/oqc",
"style": {
"navigationBarTitleText": "销售出库检"
}
},{
"path": "pages/qc/updateStandardList",
"style": {
"navigationBarTitleText": "编辑批号质检详情"
}
},{
"path": "pages/basic/empEqpStart",
"style": {
"navigationBarTitleText": "人员上机"
}
},{
"path": "pages/basic/empEqpEnd",
"style": {
"navigationBarTitleText": "人员下机"
}
},{
"path": "pages/basic/cutterStart",
"style": {
"navigationBarTitleText": "刀具上机"
}
},{
"path": "pages/basic/cutterEnd",
"style": {
"navigationBarTitleText": "刀具下机"
}
},{
"path": "pages/basic/cutterBind",
"style": {
"navigationBarTitleText": "刀具安装"
}
},{
"path": "pages/basic/cutterUnBind",
"style": {
"navigationBarTitleText": "刀具拆卸"
}
},{
"path": "pages/basic/cutterSwitch",
"style": {
"navigationBarTitleText": "刀具切换"
}
},{
"path": "pages/basic/cutterBladeEnd",
"style": {
"navigationBarTitleText": "刀刃下机"
}
},{
"path": "pages/basic/cutterBladeStart",
"style": {
"navigationBarTitleText": "刀刃上机"
}
},{
"path": "pages/esop/esopProLine",
"style": {
"navigationBarTitleText": "ESOP产线下发"
}
},{
"path": "pages/esop/esopPwo",
"style": {
"navigationBarTitleText": "作业工位"
}
},{
"path": "pages/wms/pwoIn/pwoRk",
"style": {
"navigationBarTitleText": "产品入库单"
}
},{
"path": "pages/wms/pwoIn/pwoSh",
"style": {
"navigationBarTitleText": "产品收货单"
}
},{
"path": "pages/wms/pwoIn/pwoTask",
"style": {
"navigationBarTitleText": "生产任务单"
}
},{
"path": "pages/wms/pwoMaterial/pwoOut",
"style": {
"navigationBarTitleText": "领料出库单"
}
},{
"path": "pages/wms/pwoMaterial/pwoPick",
"style": {
"navigationBarTitleText": "领料拣货单"
}
},{
"path": "pages/tpm/checkTask",
"style": {
"navigationBarTitleText": "点检任务单"
}
},{
"path": "pages/tpm/checkTaskItem",
"style": {
"navigationBarTitleText": "点检任务明细单"
}
},{
"path": "pages/tpm/list",
"style": {
"navigationBarTitleText": "基本信息"
}
},{
"path": "pages/tpm/maintainTask",
"style": {
"navigationBarTitleText": "保养任务单"
}
},{
"path": "pages/tpm/maintainTaskItem",
"style": {
"navigationBarTitleText": "保养任务明细单"
}
},{
"path": "pages/tpm/repairTask",
"style": {
"navigationBarTitleText": "维修任务单"
}
},{
"path": "pages/tpm/repairTaskItem",
"style": {
"navigationBarTitleText": "维修任务明细单"
}
},{
"path": "pages/retrospect/piece",
"style": {
"navigationBarTitleText": "件号追溯"
}
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

View File

@@ -0,0 +1,96 @@
export default {
'contact': '\ue100',
'person': '\ue101',
'personadd': '\ue102',
'contact-filled': '\ue130',
'person-filled': '\ue131',
'personadd-filled': '\ue132',
'phone': '\ue200',
'email': '\ue201',
'chatbubble': '\ue202',
'chatboxes': '\ue203',
'phone-filled': '\ue230',
'email-filled': '\ue231',
'chatbubble-filled': '\ue232',
'chatboxes-filled': '\ue233',
'weibo': '\ue260',
'weixin': '\ue261',
'pengyouquan': '\ue262',
'chat': '\ue263',
'qq': '\ue264',
'videocam': '\ue300',
'camera': '\ue301',
'mic': '\ue302',
'location': '\ue303',
'mic-filled': '\ue332',
'speech': '\ue332',
'location-filled': '\ue333',
'micoff': '\ue360',
'image': '\ue363',
'map': '\ue364',
'compose': '\ue400',
'trash': '\ue401',
'upload': '\ue402',
'download': '\ue403',
'close': '\ue404',
'redo': '\ue405',
'undo': '\ue406',
'refresh': '\ue407',
'star': '\ue408',
'plus': '\ue409',
'minus': '\ue410',
'circle': '\ue411',
'checkbox': '\ue411',
'close-filled': '\ue434',
'clear': '\ue434',
'refresh-filled': '\ue437',
'star-filled': '\ue438',
'plus-filled': '\ue439',
'minus-filled': '\ue440',
'circle-filled': '\ue441',
'checkbox-filled': '\ue442',
'closeempty': '\ue460',
'refreshempty': '\ue461',
'reload': '\ue462',
'starhalf': '\ue463',
'spinner': '\ue464',
'spinner-cycle': '\ue465',
'search': '\ue466',
'plusempty': '\ue468',
'forward': '\ue470',
'back': '\ue471',
'left-nav': '\ue471',
'checkmarkempty': '\ue472',
'home': '\ue500',
'navigate': '\ue501',
'gear': '\ue502',
'paperplane': '\ue503',
'info': '\ue504',
'help': '\ue505',
'locked': '\ue506',
'more': '\ue507',
'flag': '\ue508',
'home-filled': '\ue530',
'gear-filled': '\ue532',
'info-filled': '\ue534',
'help-filled': '\ue535',
'more-filled': '\ue537',
'settings': '\ue560',
'list': '\ue562',
'bars': '\ue563',
'loop': '\ue565',
'paperclip': '\ue567',
'eye': '\ue568',
'arrowup': '\ue580',
'arrowdown': '\ue581',
'arrowleft': '\ue582',
'arrowright': '\ue583',
'arrowthinup': '\ue584',
'arrowthindown': '\ue585',
'arrowthinleft': '\ue586',
'arrowthinright': '\ue587',
'pulldown': '\ue588',
'closefill': '\ue589',
'sound': '\ue590',
'scan': '\ue612'
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,183 @@
<template>
<view class="uni-searchbar">
<view :style="{borderRadius:radius+'px',backgroundColor: bgColor}" class="uni-searchbar__box" @click="searchClick">
<!-- #ifdef MP-ALIPAY -->
<view class="uni-searchbar__box-icon-search">
<uni-icons color="#999999" size="18" type="search" />
</view>
<!-- #endif -->
<!-- #ifndef MP-ALIPAY -->
<uni-icons color="#999999" class="uni-searchbar__box-icon-search" size="18" type="search" />
<!-- #endif -->
<input v-if="show" :focus="showSync" :placeholder="placeholder" :maxlength="maxlength" @confirm="confirm" class="uni-searchbar__box-search-input"
confirm-type="search" type="text" v-model="searchVal" />
<text v-else class="uni-searchbar__text-placeholder">{{ placeholder }}</text>
<view v-if="show && (clearButton==='always'||clearButton==='auto'&&searchVal!=='')" class="uni-searchbar__box-icon-clear" @click="clear">
<uni-icons color="#999999" class="" size="24" type="clear" />
</view>
</view>
<text @click="cancel" class="uni-searchbar__cancel" v-if="cancelButton ==='always' || show && cancelButton ==='auto'">{{cancelText}}</text>
</view>
</template>
<script>
import uniIcons from "../uni-icons/uni-icons.vue";
export default {
name: "UniSearchBar",
components: {
uniIcons
},
props: {
placeholder: {
type: String,
default: "请输入搜索内容"
},
radius: {
type: [Number, String],
default: 5
},
clearButton: {
type: String,
default: "auto"
},
cancelButton: {
type: String,
default: "auto"
},
cancelText: {
type: String,
default: '取消'
},
bgColor: {
type: String,
default: "white"
},
maxlength: {
type: [Number, String],
default: 100
}
},
data() {
return {
show: false,
showSync: false,
searchVal: ""
}
},
watch: {
searchVal() {
this.$emit("input", {
value: this.searchVal
})
}
},
methods: {
searchClick() {
if (this.show) {
return
}
this.searchVal = ""
this.show = true;
this.$nextTick(() => {
this.showSync = true;
})
},
clear() {
this.searchVal = ""
},
cancel() {
this.$emit("cancel", {
value: this.searchVal
});
this.searchVal = ""
this.show = false
this.showSync = false
// #ifndef APP-PLUS
uni.hideKeyboard()
// #endif
// #ifdef APP-PLUS
plus.key.hideSoftKeybord()
// #endif
},
confirm() {
// #ifndef APP-PLUS
uni.hideKeyboard();
// #endif
// #ifdef APP-PLUS
plus.key.hideSoftKeybord()
// #endif
this.$emit("confirm", {
value: this.searchVal
})
}
}
};
</script>
<style lang="scss" scoped>
$uni-searchbar-height: 32px;
.uni-searchbar {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
position: relative;
padding: $uni-spacing-col-base;
}
.uni-searchbar__box {
/* #ifndef APP-NVUE */
display: flex;
box-sizing: border-box;
/* #endif */
overflow: hidden;
position: relative;
flex: 1;
justify-content: center;
flex-direction: row;
align-items: center;
height: $uni-searchbar-height;
padding: 5px 8px 5px 0px;
border-width: 0px;
border-style: solid;
border-color: $uni-border-color;
}
.uni-searchbar__box-icon-search {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
width: 32px;
justify-content: center;
align-items: center;
color: $uni-text-color-placeholder;
}
.uni-searchbar__box-search-input {
flex: 1;
font-size: $uni-font-size-base;
color: $uni-text-color;
}
.uni-searchbar__box-icon-clear {
align-items: center;
line-height: 24px;
padding-left: 5px;
}
.uni-searchbar__text-placeholder {
font-size: $uni-font-size-base;
color: $uni-text-color-placeholder;
margin-left: 5px;
}
.uni-searchbar__cancel {
padding-left: 10px;
line-height: $uni-searchbar-height;
font-size: 14px;
color: $uni-text-color;
}
</style>

View File

@@ -0,0 +1,85 @@
{
"id": "cc-SearchBarHisView",
"displayName": " 前端仿京东天猫带搜索历史搜索栏热门搜索搜索框searchBar组件 删除清空",
"version": "2.0.0",
"description": " 仿京东、天猫带搜索历史搜索栏搜索框searchBar组件、历史搜索、热搜 搜索框 搜索栏 删除清空搜索记录",
"keywords": [
"热门搜索",
"历史搜索",
"搜索框",
"搜索栏",
"searchBar"
],
"repository": "",
"engines": {
"HBuilderX": "^3.8.0"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "y",
"app-nvue": "y"
},
"H5-mobile": {
"Safari": "y",
"Android Browser": "y",
"微信浏览器(Android)": "y",
"QQ浏览器(Android)": "y"
},
"H5-pc": {
"Chrome": "y",
"IE": "y",
"Edge": "y",
"Firefox": "y",
"Safari": "y"
},
"小程序": {
"微信": "y",
"阿里": "y",
"百度": "y",
"字节跳动": "y",
"QQ": "y",
"钉钉": "y",
"快手": "y",
"飞书": "y",
"京东": "y"
},
"快应用": {
"华为": "y",
"联盟": "y"
}
}
}
}
}

View File

@@ -0,0 +1,98 @@
# cc-SearchBarHisView
#### 使用方法
```使用方法
<view style="margin-top: 16px;">
<!-- keyStr: 设置storage存储key hisClick: 设置历史事件 searchClick:设置搜索事件 -->
<cc-SearchBarHisView keyStr="productHisArr" searchPlaceHolder="请输入产品名称、关键字" @hisClick="selHisClick"
@searchClick="goSearchClick"></cc-SearchBarHisView>
</view>
```
#### HTML代码实现部分
```html
<template>
<view class="content">
<view style="margin-top: 16px;">
<!-- keyStr: 设置storage存储key hisClick: 设置历史事件 searchClick:设置搜索事件 -->
<cc-SearchBarHisView keyStr="productHisArr" searchPlaceHolder="请输入产品名称、关键字" @hisClick="selHisClick"
@searchClick="goSearchClick"></cc-SearchBarHisView>
</view>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
}
},
onLoad() {
},
methods: {
selHisClick(item) {
console.log('选择的值 = ' + item);
uni.navigateTo({
url: '/pages/index/search?name=' + item
})
},
goSearchClick(item) {
uni.navigateTo({
url: '/pages/index/search?name=' + item
})
},
}
}
</script>
<style scoped>
page {
background-color: '#F6F7FA' !important;
}
.content {
display: flex;
flex-direction: column;
background-color: #F6F7FA;
height: 100vh;
}
</style>
```