合并代码

This commit is contained in:
Teng 2025-11-18 16:19:54 +08:00
parent bfbaed7f15
commit 64d9a33813
3 changed files with 239 additions and 75 deletions

View File

@ -4,8 +4,34 @@
class="mengban" class="mengban"
@click="moreindex=-1; topbuttontarget=-1;openjianhuo=false;opengaijia=false;opendata=false;opencgr=false"> @click="moreindex=-1; topbuttontarget=-1;openjianhuo=false;opengaijia=false;opendata=false;opencgr=false">
</view> </view>
<!-- 给模糊搜索用的 -->
<view v-show="filteredCgrListsecond.length&&gysvalue" class="mengban" @click="closefilteredCgrListsecond">
</view>
<view class="input-next" style="bottom: 450rpx;" v-if="filteredCgrListsecond.length && gysvalue">
<view v-show="filteredCgrListsecond[0].suppliersName!=`暂无数据`" class="next-father"
v-for="(item, index) in filteredCgrListsecond.slice(0, 5)" :key="index"
@click="clickfilteredCgrListsecond(item,index)">
{{ item.suppliersName }}
</view>
<view class="nomessage" v-if="filteredCgrListsecond[0].suppliersName===`暂无数据`">
暂无数据
</view>
</view>
<!-- 给模糊搜索用的 -->
<view v-show="filteredCgrList.length&&cgrvalue" class="mengban" @click="closefilteredCgrList"></view>
<view class="input-next" v-if="filteredCgrList.length && cgrvalue">
<view v-show="filteredCgrList[0].cgBy!=`暂无数据`" class="next-father"
v-for="(item, index) in filteredCgrList.slice(0, 5)" :key="index" @click="clickfilteredCgrList(item)">
{{ item.cgBy }}
</view>
<view class="nomessage" v-if="filteredCgrList[0].cgBy===`暂无数据`">
暂无数据
</view>
</view>
<!-- 日期 --> <!-- 日期 -->
<view class="calendar-father" v-show="opendata"> <view class="calendar-father" v-show="opendata" v-if="xiaohui">
<calendar @datachange="dateget" /> <calendar @datachange="dateget" />
</view> </view>
<!-- 改价 --> <!-- 改价 -->
@ -199,13 +225,14 @@
border-radius: 20rpx; border-radius: 20rpx;
border-radius: 0.6vw; border-radius: 0.6vw;
overflow: hidden; overflow: hidden;
position: relative;" position: relative;" v-for="(item,index) in albumlist" :key="index">
v-for="(item,index) in albumlist" :key="index"> <view
<view style="width: 1.6vw;height: 1.6vw;z-index: 20;position: absolute; right: 0.1vw;top: 0.1vw;background: rgba(255, 255, 255, 0.7);display: flex;justify-content: center;align-items: center;" style="width: 1.6vw;height: 1.6vw;z-index: 20;position: absolute; right: 0.1vw;top: 0.1vw;background: rgba(255, 255, 255, 0.7);display: flex;justify-content: center;align-items: center;"
@click.stop="deldex=index;open=1"> @click.stop="deldex=index;open=1">
<image src="/static/x.png" mode="aspectFill" style="width: 100%;height: 100%;"></image> <image src="/static/x.png" mode="aspectFill" style="width: 100%;height: 100%;"></image>
</view> </view>
<image style="width: 100%;height: 100%;" :src="item?item:'/static/zhanwei.png'" mode="aspectFill" @click="previewImage(item,index,albumlist)"/> <image style="width: 100%;height: 100%;" :src="item?item:'/static/zhanwei.png'" mode="aspectFill"
@click="previewImage(item,index,albumlist)" />
</view> </view>
<view style="width: 40%;height: 150rpx;margin-right: 4%;margin-top: 3%;"> <view style="width: 40%;height: 150rpx;margin-right: 4%;margin-top: 3%;">
<view style=" <view style="
@ -217,9 +244,7 @@
align-items: center; align-items: center;
background-color:#fafdff ; background-color:#fafdff ;
border: 1rpx solid #c4ebff; border: 1rpx solid #c4ebff;
border-radius: 20rpx;" border-radius: 20rpx;" v-if="albumlist.length<4" @click="uplod">
v-if="albumlist.length<4"
@click="uplod">
<image style="width: 50rpx;height: 50rpx;margin-bottom: 5rpx;" <image style="width: 50rpx;height: 50rpx;margin-bottom: 5rpx;"
src="/static/index/warehouse/procurement/picking/addphoto.png" /> src="/static/index/warehouse/procurement/picking/addphoto.png" />
@ -368,10 +393,10 @@
<view class="contain-left"> <view class="contain-left">
<view class="left-select-more" v-show="openselect"> <view class="left-select-more" v-show="openselect">
<view class="more-bottom"> <view class="more-bottom">
<view class="bottom-left"> <view class="bottom-left" @click="chongzhi">
重置 重置
</view> </view>
<view class="bottom-right"> <view class="bottom-right" @click="openselect=false">
确定 确定
<text style="font-size: 25rpx;margin-top: 5rpx;" v-if="alltotal>=99"> <text style="font-size: 25rpx;margin-top: 5rpx;" v-if="alltotal>=99">
(99+采购单) (99+采购单)
@ -424,18 +449,16 @@
采购人 采购人
</view> </view>
<view class="more-time-select" @click="opencgr=true"> <view class="more-time-select" @click="opencgr=true">
<view class="more-gray" style="margin-left: 30rpx;"> <input class="more-gray" v-model="cgrvalue" placeholder="请输入采购人" placeholder-style="color: #BFBFBF;"
请输入采购人 style="margin-left: 30rpx;width: 400rpx;" @input="changeArray"></input>
</view>
<image class="select-img" src="/static/index/warehouse/procurement/picking/center.png" /> <image class="select-img" src="/static/index/warehouse/procurement/picking/center.png" />
</view> </view>
<view class="more-select"> <view class="more-select">
供应商 供应商
</view> </view>
<view class="more-time-select" @click="opengys=true"> <view class="more-time-select" @click="opengys=true">
<view class="more-gray" style="margin-left: 30rpx;"> <input class="more-gray" v-model="gysvalue" placeholder="请输入供应商" placeholder-style="color: #BFBFBF;"
请输入供应商 style="margin-left: 30rpx;width: 400rpx;" @input="changeArraysecond"></input>
</view>
<image class="select-img" src="/static/index/warehouse/procurement/picking/center.png" /> <image class="select-img" src="/static/index/warehouse/procurement/picking/center.png" />
</view> </view>
</view> </view>
@ -635,12 +658,12 @@
</view> </view>
</view> </view>
<view class="contain-right-middle"> <view class="contain-right-middle">
<scroll-view scroll-x="true" class="middle-Y" > <scroll-view scroll-x="true" class="middle-Y">
<view class="middle-Y-father"> <view class="middle-Y-father">
<view class="middle-one" v-for="(v,i) in InvoicingList" :key='i' <view class="middle-one" v-for="(v,i) in InvoicingList" :key='i'
:style="{border: middletarget === i? '4rpx solid #1083F8': '4rpx solid transparent'}" :style="{border: middletarget === i? '4rpx solid #1083F8': '4rpx solid transparent'}"
@click="clickmiddle(i)"> @click="clickmiddle(i)">
<view :class="v.status<2?`up-tags-target`: `up-tags`" > <view :class="v.status<2?`up-tags-target`: `up-tags`">
{{v.status_dictText}} {{v.status_dictText}}
</view> </view>
<image class="middle-img" <image class="middle-img"
@ -748,8 +771,7 @@
<text :style="textStyle">改价</text> <text :style="textStyle">改价</text>
</view> </view>
</view> </view>
<view @click="openjianhuoclick" <view @click="openjianhuoclick" style="background-color: #f8f8f8
style="background-color: #f8f8f8
;color: #555555;display: flex; ;color: #555555;display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -757,8 +779,7 @@
height: 70rpx; height: 70rpx;
border-radius: 40rpx; border-radius: 40rpx;
box-shadow: 0 4rpx 6rpx rgba(0, 0, 0, 0.1); box-shadow: 0 4rpx 6rpx rgba(0, 0, 0, 0.1);
margin-left: 20rpx;" margin-left: 20rpx;" :style="showvalue.jianhuobtn==false?'color:#999':''">
:style="showvalue.jianhuobtn==false?'color:#999':''">
拣货 拣货
</view> </view>
</view> </view>
@ -767,14 +788,16 @@
<view style="width: 95%;height: 0.5rpx; background-color: #eff1f3;margin-left: 5%;"></view> <view style="width: 95%;height: 0.5rpx; background-color: #eff1f3;margin-left: 5%;"></view>
<view class="right-bottom" v-show="!typechange"> <view class="right-bottom" v-show="!typechange">
<view class="right-bottom-left"> <view class="right-bottom-left">
<image class="left-img" <image class="left-img"
:src="showvalue?.materialImg?serverUrl + showvalue?.materialImg : '/static/zhiniaoku.png'" :src="showvalue?.materialImg?serverUrl + showvalue?.materialImg : '/static/zhiniaoku.png'"
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="left-tags"> <view class="left-tags">
<view class="tags-one" v-if="showvalue.categoryId_dictText">{{showvalue.categoryId_dictText}}</view> <view class="tags-one" v-if="showvalue.categoryId_dictText">
{{showvalue.categoryId_dictText}}</view>
<view class="tags-one" v-if="showvalue.typeId_dictText">{{showvalue.typeId_dictText}}</view> <view class="tags-one" v-if="showvalue.typeId_dictText">{{showvalue.typeId_dictText}}</view>
<view class="tags-one" v-if="showvalue.medicationId_dictText">{{showvalue.medicationId_dictText}}</view> <view class="tags-one" v-if="showvalue.medicationId_dictText">
{{showvalue.medicationId_dictText}}</view>
</view> </view>
</view> </view>
<view class="right-bottom-right"> <view class="right-bottom-right">
@ -1045,14 +1068,14 @@
</view> </view>
</view> </view>
<view class="mengban" v-if="open==1"> </view> <view class="mengban" v-if="open==1"> </view>
<equiment :open="open==1" @del="del()" @back="open = 0" :content="'是否删除此图片?'"></equiment> <equiment :open="open==1" @del="del()" @back="open = 0" :content="'是否删除此图片?'"></equiment>
</view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps, onUnmounted } from 'vue'; import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps, onUnmounted } from 'vue';
import { queryInvoicingList, getCgdMaterialTreeData, queryNuInfoByNuId, updateKfstatus, queryCgdList, queryCgdInfoList, queryWlInfoByWlId, voidedCgdMain, getCgrLis, getGysList ,upload} from './api/lunpan.js' import { queryInvoicingList, getCgdMaterialTreeData, queryNuInfoByNuId, updateKfstatus, queryCgdList, queryCgdInfoList, queryWlInfoByWlId, voidedCgdMain, getCgrLis, getGysList, upload } from './api/lunpan.js'
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app" import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import calendar from '@/component/public/calendar.vue' import calendar from '@/component/public/calendar.vue'
import superpicker from '@/component/public/superpicker.vue' import superpicker from '@/component/public/superpicker.vue'
@ -1063,30 +1086,130 @@
const opengaijia = ref(false); const opengaijia = ref(false);
const openjianhuo = ref(false); const openjianhuo = ref(false);
const opendata = ref(false); const opendata = ref(false);
//
const gysclick = (res:any) => { //
console.log("///",res); const filteredCgrList = ref([]);
opengys.value=false;
const closefilteredCgrList = () => {
filteredCgrList.value = [];
cgrvalue.value = plzinfo.cgBy;
}
const clickfilteredCgrList = (item : any) => {
filteredCgrList.value = [];
plzinfo.cgBy = item.cgBy
cgrvalue.value = plzinfo.cgBy;
search()
} }
const openjianhuoclick = () => { // --- ---
if(showvalue.value.jianhuobtn == false){ function fuzzyMatch(text : unknown, q : string) {
const s = String(text ?? '').toLowerCase()
const ql = String(q ?? '').toLowerCase().trim()
if (!ql) return true
if (s.includes(ql)) return true
// subsequence
let i = 0
for (let j = 0; j < s.length && i < ql.length; j++) {
if (s[j] === ql[i]) i++
}
return i === ql.length
}
// --- 0.3 ---
let debounceTimer : number | null = null
/**
* changeArray - 防抖搜索0.3 秒后无再次输入才执行
*/
function changeArray(res : any) {
if (!res.detail.value) {
plzinfo.cgBy = "";
filteredCgrList.value = [];
search()
return return
} }
openjianhuo.value = true;
donghuaopo.value = false; const keyword = String(
setTimeout(() => { typeof res === 'string' ? res : res?.detail?.value ?? ''
donghuaopo.value = true; ).trim()
}, 100)
//
if (debounceTimer) clearTimeout(debounceTimer)
// 300ms
debounceTimer = setTimeout(() => {
if (!keyword) {
filteredCgrList.value = cgrlist.value.slice()
return
}
filteredCgrList.value = cgrlist.value.filter(item =>
fuzzyMatch(item?.cgBy, keyword)
)
if (!filteredCgrList.value.length) {
filteredCgrList.value.push({ cgBy: `暂无数据` })
}
}, 300)
}
//
const filteredCgrListsecond = ref([]);
const secondindex = ref(-1)
const closefilteredCgrListsecond = () => {
filteredCgrListsecond.value = [];
gysvalue.value = "";
plzinfo.suppliers = "";
search()
}
const clickfilteredCgrListsecond = (item : any, index : number) => {
filteredCgrListsecond.value = [];
plzinfo.suppliers = item.suppliers;
gysvalue.value = item.suppliersName;
secondindex.value = index;
search()
}
const cgrvalue = ref("");
const gysvalue = ref("");
function changeArraysecond(res : any) {
if (!res.detail.value) {
plzinfo.suppliers = "";
filteredCgrListsecond.value = [];
secondindex.value = -1;
gysvalue.value = "";
search()
return
}
const keyword = String(
typeof res === 'string' ? res : res?.detail?.value ?? ''
).trim()
//
if (debounceTimer) clearTimeout(debounceTimer)
// 300ms
debounceTimer = setTimeout(() => {
if (!keyword) {
filteredCgrListsecond.value = gyslist.value.slice()
return
}
filteredCgrListsecond.value = gyslist.value.filter(item =>
fuzzyMatch(item?.suppliersName, keyword)
)
// filteredCgrListsecond.value = [...filteredCgrListsecond.value, ...filteredCgrListsecond.value, ...filteredCgrListsecond.value, ...filteredCgrList.value, ...filteredCgrList.value]
if (!filteredCgrListsecond.value.length) {
filteredCgrListsecond.value.push({ suppliersName: `暂无数据` })
}
}, 300)
} }
const opengaijiaclick = () => {
opengaijia.value = true;
donghuaopo.value = false;
setTimeout(() => {
donghuaopo.value = true;
}, 100)
}
onLoad(() => { onLoad(() => {
firstgetqueryCgdList(); firstgetqueryCgdList();
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/'; serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
@ -1104,7 +1227,7 @@
}) })
getGysList().then((res : any) => { getGysList().then((res : any) => {
gyslist.value = res.result; gyslist.value = res.result;
console.log("isright",res) console.log("isright", res)
}) })
} }
@ -1141,6 +1264,16 @@
cgBy: "", cgBy: "",
} }
//
const xiaohui = ref(true);
const chongzhi = () => {
xiaohui.value = false;
setTimeout(() => {
xiaohui.value = true;
}, 300)
Object.assign(plzinfo, mobanplzinfo);
search()
}
type datetype = { type datetype = {
start : string, start : string,
end : string end : string
@ -1247,13 +1380,13 @@
cgdId: "", cgdId: "",
isWaring: 0 isWaring: 0
} }
const tagsArray = [`待入库`,`挂账中`, `已入库`, `已销账`, ] const tagsArray = [`待入库`, `挂账中`, `已入库`, `已销账`,]
const clickmiddle = (index : number) => { const clickmiddle = (index : number) => {
middletarget.value = index; middletarget.value = index;
showvalue.value = InvoicingList.value[index]; showvalue.value = InvoicingList.value[index];
showvalue.value.jianhuobtn = false; showvalue.value.jianhuobtn = false;
if(Number(showvalue.value.status)==0 || (Number(showvalue.value.status)>0&&Number(showvalue.value.wrksl)>0)){ if (Number(showvalue.value.status) == 0 || (Number(showvalue.value.status) > 0 && Number(showvalue.value.wrksl) > 0)) {
showvalue.value.maxnum = (showvalue.value.rksl==0&&showvalue.value.wrksl==0&&showvalue.value.xzsl==0)?showvalue.value.purchaseQuantity:showvalue.value.wrksl showvalue.value.maxnum = (showvalue.value.rksl == 0 && showvalue.value.wrksl == 0 && showvalue.value.xzsl == 0) ? showvalue.value.purchaseQuantity : showvalue.value.wrksl
showvalue.value.num = showvalue.value.maxnum; showvalue.value.num = showvalue.value.maxnum;
showvalue.value.jianhuobtn = true; showvalue.value.jianhuobtn = true;
} }
@ -1267,7 +1400,7 @@
// InvoicingList.value.push(...res.result.records); // InvoicingList.value.push(...res.result.records);
// } // }
console.log(res.result.records) // console.log(res.result.records)
InvoicingList.value.push(...res.result.records); InvoicingList.value.push(...res.result.records);
clickmiddle(0); clickmiddle(0);
@ -1374,39 +1507,39 @@
} }
// //
const albumlist = ref([]) const albumlist = ref([])
const uplod = ()=>{ const uplod = () => {
uni.chooseImage({ uni.chooseImage({
count:1, //9 count: 1, //9
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['camera'], // sourceType: ['camera'], //
success: (e)=> { success: (e) => {
console.log(JSON.stringify(e.tempFilePaths)) console.log(JSON.stringify(e.tempFilePaths))
let ar = JSON.stringify(e.tempFilePaths) let ar = JSON.stringify(e.tempFilePaths)
albumlist.value.push(JSON.parse(ar)[0]) albumlist.value.push(JSON.parse(ar)[0])
// upload({file:url}).then(res=>{ // upload({file:url}).then(res=>{
// albumlist.value.push(res.result) // albumlist.value.push(res.result)
// console.log(albumlist.value) // console.log(albumlist.value)
// }) // })
console.log(albumlist.value) console.log(albumlist.value)
} }
}); });
} }
// //
const previewImage =(v,i,arr)=>{ const previewImage = (v, i, arr) => {
uni.previewImage({ uni.previewImage({
current:i, current: i,
urls:arr urls: arr
}) })
} }
// 1 // 1
const deldex =ref(-1) const deldex = ref(-1)
const del=()=>{ const del = () => {
albumlist.value.splice(deldex.value,1) albumlist.value.splice(deldex.value, 1)
deldex.value = -1; deldex.value = -1;
open.value = 0; open.value = 0;
} }
// //
const clknum =(item:any)=>{ const clknum = (item : any) => {
if (item == "AC") { if (item == "AC") {
@ -1419,7 +1552,7 @@
} }
} }
// //
const toFixed4ByPadStart=(n)=> { const toFixed4ByPadStart = (n) => {
const intPart = Math.floor(Math.abs(n)); const intPart = Math.floor(Math.abs(n));
return String(intPart).padStart(4, '0'); return String(intPart).padStart(4, '0');
} }
@ -2133,6 +2266,7 @@
display: none; display: none;
} }
} }
.right-bottom { .right-bottom {
width: 100%; width: 100%;
height: 600rpx; height: 600rpx;
@ -2708,14 +2842,16 @@
align-items: center; align-items: center;
margin-right: 10rpx; margin-right: 10rpx;
} }
.gray-button:active{
.gray-button:active {
background: linear-gradient(to top, #00C9FF, #0076FF); background: linear-gradient(to top, #00C9FF, #0076FF);
color: #fff; color: #fff;
font-size: 44rpx; font-size: 44rpx;
font-weight: 700; font-weight: 700;
border: 1rpx solid #00C9FF; border: 1rpx solid #00C9FF;
} }
.gray-button-jianpan:active{
.gray-button-jianpan:active {
background: linear-gradient(to top, #00C9FF, #0076FF); background: linear-gradient(to top, #00C9FF, #0076FF);
color: #fff; color: #fff;
font-size: 44rpx; font-size: 44rpx;
@ -2797,4 +2933,32 @@
background-color: #fff; background-color: #fff;
z-index: 999; z-index: 999;
} }
.input-next {
position: fixed;
bottom: 660rpx;
left: 40rpx;
width: 610rpx;
// height: 300rpx;
border-radius: 30rpx;
z-index: 999;
background-color: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
padding: 40rpx 30rpx;
.next-father {
color: #999;
margin: 10rpx;
font-size: 28rpx;
}
}
.nomessage {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 200rpx;
font-size: 34rpx;
color: #999;
}
</style> </style>

View File

@ -574,7 +574,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
) )
]); ]);
} }
const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/camera.nvue"]]); const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/camera.nvue"]]);
export { export {
camera as default camera as default
}; };

View File

@ -577,7 +577,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
) )
]); ]);
} }
const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/fullcamera.nvue"]]); const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/fullcamera.nvue"]]);
export { export {
fullcamera as default fullcamera as default
}; };