提交 9a76ffbb 编写于 作者: Y yang-zongying@qq.com

提取公用组件

上级 d750dc66
......@@ -3,12 +3,12 @@
<view class="" v-if="isFold">
<view class="fl-rsb mgb10">
<view class="fl">
<view class="desctit">物料编号:</view>
<view class="dectext">{{goodsInfo.wlbh}}</view>
<view class="dectext">物料编号:</view>
<view class="desctit">{{goodsInfo.wlbh}}</view>
</view>
<!-- 编辑 -->
<view class="fl-rr">
<view class="cu" @click="delGoodsInfo(goodsInfo)"><u--image :showLoading="true"
<view v-if="!isDetail" class="cu" @click="delGoodsInfo(goodsInfo)"><u--image :showLoading="true"
:src="imgbaseUrl + 'del.png'" width="16px" height="16px"></u--image>
</view>
<view class="pdl" @click="isFold = !isFold">
......@@ -17,46 +17,56 @@
</view>
</view>
<view class="fl mgb10">
<text class="desctit">物料名称:</text>
<text class="dectext">{{goodsInfo.wlmc}}</text>
<text class="dectext">物料名称:</text>
<text class="desctit">{{goodsInfo.wlmc}}</text>
</view>
<view class="fl-grid2 mgb10">
<view class="fl mgb10">
<view class="fl">
<text class="desctit">型号规格:</text>
<text class="dectext">{{ goodsInfo.wlxhgg }}</text>
<view class="dectext">型号规格:</view>
<view class="desctit">{{ goodsInfo.wlxhgg }}</view>
</view>
</view>
<view class="fl-rsb ">
<view class="fl-rsb">
<view class="fl">
<text class="desctit">单位:</text>
<text class="dectext">{{ goodsInfo.cgjldwmc }}</text>
<text class="dectext">单位:</text>
<text class="desctit">{{ goodsInfo.jldwmc }}</text>
</view>
<view class="goodsNum">
<u-number-box v-model="goodsInfo.sqsl" :min="0" :max="goodsInfo.goodsKC" inputWidth="140"
bgColor="#EEF6FF">
<view slot="minus" class="minus">
<u-icon name="minus" size="12"></u-icon>
</view>
<!-- <view slot="input" style="width: 80px;text-align: center;background-color: rgba(36, 86, 205, 0.1); padding: 2px 0px; margin: 0px 2px; border-radius: 3px;"
class="input">{{goodsInfo.goodsCount}}</view> -->
<view slot="plus" class="plus">
<u-icon name="plus" color="#2452D1" size="12"></u-icon>
</view>
</u-number-box>
<view v-if="isDetail">
<text class="dectext">数量:</text>
<text class="desctit blod">{{ goodsInfo.sqsl }}</text>
</view>
<view v-else>
<u-number-box v-model="goodsInfo.sqsl" :min="0" :max="goodsInfo.goodsKC" inputWidth="140"
bgColor="#EEF6FF">
<view slot="minus" class="minus">
<u-icon name="minus" size="12"></u-icon>
</view>
<!-- <view slot="input" style="width: 80px;text-align: center;background-color: rgba(36, 86, 205, 0.1); padding: 2px 0px; margin: 0px 2px; border-radius: 3px;"
class="input">{{goodsInfo.goodsCount}}</view> -->
<view slot="plus" class="plus">
<u-icon name="plus" color="#2452D1" size="12"></u-icon>
</view>
</u-number-box>
</view>
</view>
</view>
<!-- <view class="mgt mgb5 fl-rsbc">
<!--<view class="mgt mgb5 fl-rsbc">
<view class="desctit">期望交付日期:</view>
</view>
<view class="w100 bgwhite cu bdr mgb">
<uni-datetime-picker returnType="date" v-model="item.zwxqrq"
@change="selectedPicker($event)" type="date" :end="Date.now() + 10000000000000" :start="Date.now()" />
</view> -->
<view class="mgtb10 fl-rsbc">
<view class="desctit">备注:</view>
<view class="mgt10" v-if="isDetail">
<text class="dectext">备注:</text>
<text class="desctit blod">{{goodsInfo.qdbz}} </text>
</view>
<view class="fl-rsbc">
<u--textarea height="40" v-model="goodsInfo.qdbz" placeholder="请输入备注内容"></u--textarea>
<view class="bd1" v-else>
<!-- <view class="desctit">备注:</view> -->
<view class="fl-rr pdtb10">
<u--input border="none" height="40" v-model="goodsInfo.qdbz" placeholder="请输入备注内容"></u--input>
</view>
</view>
</view>
<view v-else>
......@@ -113,7 +123,7 @@
data() {
return {
imgbaseUrl: this.$globalv.imgBaseUrl,
isFold: false,
isFold: true,
};
},
created() {
......@@ -133,7 +143,10 @@
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.dectext{
white-space: nowrap;
}
.minus {
width: 22px;
height: 22px;
......
<template>
<view class="">
<view class="pdb stit">申请单号:{{sqItem.sqNum}}</view>
<view class="pdb stit">申请单号:{{sqItem.Num}}</view>
<view class="fl-rsbc mgb">
<view class="fl">
<view class="mgr"><u-avatar size='90' fontSize="50" :text="userInfo.nickname.charAt(0)"></u-avatar></view>
<view class="mgr5"><u-avatar size='90' fontSize="50" :text="headTxt" randomBgColor ></u-avatar></view>
<view class="fl-cls">
<view class="fl mgb5">
<text class="">{{userInfo.nickname}}</text>
<span class="gray-tag mgl10">{{userInfo.department}}</span>
<text class="">{{sqItem.sqUser}}</text>
<span class="gray-tag mgl10">{{sqItem.sqBumen}}</span>
</view>
<view class="fl">
<view class="fl desc">
<u--image :showLoading="true" :src="imgbaseUrl + 'time.png'" width="14px" height="14px" class="mgr5" @click="click"></u--image>
{{ sqItem.sqTime }}
{{ sqItem.sqDate }}
</view>
</view>
</view>
<view :class="['status',sqItem.sqStatus == 0 ? 'done' : 'doing']">{{statusList[sqItem.sqStatus]}}</view>
<statusItem :status="sqItem.Status"/>
</view>
<view class="fl">
<text class="stit">采购类型:</text>
<text class="stext">{{actions[sqItem.sqSType].name}}</text>
<!-- <text class="stext">{{actions[sqItem.sqSType].name}}</text> -->
<text class="stext">{{sqItem.sqcglxmc}}</text>
</view>
<view class="pdt dectext">
<view class="pd bggray">{{sqItem.reasons}}</view>
<view class="pd bggray">{{sqItem.bz}}</view>
</view>
</view>
</template>
<script>
import statusItem from '@/components/statusItem.vue'
export default {
name: "applyCard",
components: { statusItem },
props: {
sqItem:{
type: Object,
default: () => {
return {
sqNum:"暂无",
sqStatus: 0,
sqTime:"",
reasons:"暂无",
sqSType: 0,
Num: "24XQ0008",
Status: 1,
StatusName: "运行",
sqBumen: "IT管理部",
sqDate: "2024-03-29 21:11:40",
sqUser: "系统管理员",
zyid: 1021,
bz:""
}
},
},
userInfo: {
type: Object,
default: () => {},
},
},
computed:{
headTxt(){
if(this.sqItem.sqUser){
return this.sqItem.sqUser.charAt(0)
}
}
},
data() {
return {
statusList: ["已通过", "待审核"],
actions: [{
name: '办公用品',
},
......
......@@ -4,8 +4,8 @@
<view class="">
<view class="fl mgb10">
<view class="fl">
<text class="desctit">物料编号:</text>
<text class="dectext">{{goodsInfo.wlbh}}</text>
<text class="dectext">物料编号:</text>
<text class="desctit">{{goodsInfo.wlbh}}</text>
</view>
<!-- <view class="fl">
<view class="desctit tr" style="width: 50px;">单位:</view>
......@@ -14,8 +14,8 @@
</view>
<view class="fl mgb10">
<view class="fl">
<text class="desctit">物料名称:</text>
<text class="dectext">{{goodsInfo.wlmc}}</text>
<text class="dectext">物料名称:</text>
<text class="desctit">{{goodsInfo.wlmc}}</text>
</view>
<!-- <view class="fl">
<view class="desctit tr" style="width: 50px;">库存:</view>
......@@ -24,23 +24,23 @@
</view>
<view class="fl mgb10">
<view class="fl">
<text class="desctit">型号规格:</text>
<text class="dectext">{{ goodsInfo.wlxhgg }}</text>
<text class="dectext">型号规格:</text>
<text class="desctit">{{ goodsInfo.wlxhgg }}</text>
</view>
</view>
</view>
<view class="bggray pd bdr4 fl-grid3">
<view class="fl-cs mgb5">
<view class="bdr4 fl-grid2">
<!-- <view class="fl-cs mgb5"> bggray pd
<text class="desctit">仓库名称:</text>
<text class="dectext">{{goodsInfo.cfckmc}}</text>
</view> -->
<view class="fl mgr">
<view class="dectext">单位:</view>
<view class="desctit">{{ goodsInfo.cgjldwmc }}</view>
</view>
<view class="fl-cs mgr">
<view class="desctit">单位:</view>
<view class="dectext">{{ goodsInfo.cgjldwmc }}</view>
</view>
<view class="fl-cs">
<view class="desctit">库存:</view>
<view class="dectext">{{ goodsInfo.kcs }}</view>
<view class="fl">
<view class="dectext">库存:</view>
<view class="desctit">{{ goodsInfo.kcs }}</view>
</view>
</view>
</view>
......@@ -179,7 +179,10 @@
background-color: rgba(36, 82, 209, 0.08);
}
</style>
<style>
<style scoped>
.desctit{
font-size: 15px;
}
.uni-input-form, .uni-input-wrapper .uni-input-input{
padding: 0px !important;
}
......
<template>
<view :class="['status',statusStyleList[status]]">
{{statusList[status]}}
<!-- {{StatusName === "" ? "未开始" : StatusName}} -->
</view>
</template>
<script>
export default {
name:"statusItem",
props: {
status: {
type: Number,
default: 0,
},
},
data() {
return {
statusList:["未开始","申请中","已通过","终止","挂起","归档","不可用"],
statusStyleList:["notStarted","doing","done","do","终止","挂起","归档","不可用"],
};
}
}
</script>
<style>
</style>
\ No newline at end of file
......@@ -7,10 +7,7 @@
<view class="stit fl"><view class="leftsite mgr10"></view>{{sqItem.Num}}</view>
</view>
</view>
<view :class="['status',statusStyleList[sqItem.Status]]">
{{statusList[sqItem.Status]}}
<!-- {{sqItem.StatusName === "" ? "未开始" : sqItem.StatusName}} -->
</view>
<statusItem :status="sqItem.Status"/>
</view>
<view :class="['fl-cs']">
<view class="mgb10 desc fl">申请人:{{sqItem.sqUser}}
......@@ -31,8 +28,10 @@
</template>
<script>
import statusItem from '@/components/statusItem.vue'
export default {
name:"cardListItem",
components: { statusItem },
props: {
isCheck: {
type: Boolean,
......@@ -49,8 +48,6 @@
},
data() {
return {
statusList:["未开始","申请中","已通过","终止","挂起","归档","不可用"],
statusStyleList:["notStarted","doing","done","do","终止","挂起","归档","不可用"],
imgbaseUrl:this.$globalv.imgBaseUrl,
};
}
......
<template>
<view class="detailPage bggray h100">
<view class="detailPage bggray h-130">
<u-notify ref="uNotify"></u-notify>
<u--form labelPosition="top" :model="cgForm" :rules="rules" labelWidth="400" ref="uForm">
<view class="pdb10">
<view class="cardview bgwhite">
<CardTit title="采购物料信息" icon="wpcg.png" :userInfo="userInfo" :iDate="sqDate" />
<view class="pdlr pdb">
<view class="w100 pdtb10"></view>
<view class="bds1 bdr4 w100 pdtb10 mgb fl-rsbc bgwhite cu" @click="isShowlyType = true">
<view class="pdl10">
<view class="bd1 w100 pdtb10 mgb fl-rsbc bgwhite cu" @click="isShowlyType = true">
<view class="">
<u--input v-model="cgForm.cgtype" readonly placeholder="请选择申请采购类型"
border="none"></u--input>
</view>
......@@ -31,7 +30,7 @@
</view>
<view v-if="goodsList.length > 0">
<view class="cardview bgwhite pd mgb" v-for="(item,index) in goodsList" :key="index">
<addDonegoodsCard :goodsInfo="item" :isDetail="true" :isCG="true" :isDel="true"
<addDonegoodsCard :goodsInfo="item" :isDetail="false" :isCG="true" :isDel="true"
@editGoodsInfo="editGoodsInfo" @delGoodsInfo="delGoodsInfo(index)" />
</view>
</view>
......
......@@ -7,23 +7,23 @@
ref="uForm"
>
<view class="mgb cardview pd bgwhite">
<ApplyCard :sqItem="sqItem" :userInfo="userInfo"/>
<ApplyCard :sqItem="sqItem" />
</view>
<!-- 物品领用卡片 -->
<view class="pdb">
<view class="pdb" v-if="goodsInfoList.length > 0">
<view class="pdb fl-rsbc">
<view class="stit">物品清单</view>
</view>
<view class="cardview bgwhite pd mgb10">
<GoodsCard :goodsInfo="goodsInfo" :isDetail="false" :isCG="true" :isAdd="false"/>
<view class="fl mgt">
<view class="cardview bgwhite pd mgb10" v-for="(item,index) in goodsInfoList" :key="index">
<addDonegoodsCard :goodsInfo="item" :isDetail="true" :isCG="true" :isAdd="false"/>
<!-- <view class="fl mgt">
<view class="mgr5"><u--image :src="imgbaseUrl + 'sl.png'" width="15px" height="15px" @click="click"></u--image></view>
<view class="stext">期望交付日期:2024-03-11 10:28</view>
</view>
<view class="fl-cs mgt">
<text class="desctit">备注:</text>
<text class="dectext">备注</text>
</view>
</view> -->
</view>
</view>
<view class="pdb">
......@@ -42,10 +42,10 @@
<script>
import TimeLine from '@/components/TimeLine.vue'
import ApplyCard from '@/components/applyCard.vue'
import GoodsCard from '@/components/goodsCard.vue'
import addDonegoodsCard from '@/components/addDonegoodsCard.vue'
import AddWupinSL from '@/pages/workSpace/wupin/addWupinSL.vue'
export default {
components: {TimeLine,GoodsCard,AddWupinSL,ApplyCard},
components: {TimeLine,addDonegoodsCard,AddWupinSL,ApplyCard},
data() {
return {
imgbaseUrl : this.$globalv.imgBaseUrl,
......@@ -76,19 +76,22 @@ export default {
status: 'status3' // 假设这是状态3
} ],
sqItem:{
sqNum:"1109987267328",
sqStatus: 0,
sqTime:"2024-03-13 08:30",
reasons:'由于部门承接了多个重要项目,工作量显著增加,部分现有设备已出现老化、性能下降等问题,影响了日常工作的正常进行。因此,为确保项目按时按质完成,提升员工工作效率,我们急需采购一批新的物资和设备。',
sqSType: 0,
// Num: "24XQ0008",
// Status: 1,
// StatusName: "运行",
// sqBumen: "IT管理部",
// sqDate: "2024-03-29 21:11:40",
// sqUser: "系统管理员",
// zyid: 1021,
// bz:'',
},
goodsInfo:undefined,
isAddWupin:false,
goodsInfoList:[],
userInfo:{
nickname:"蒋晓飞",
department:"技术咨询",
avatar:""
}
},
zyid:0,
};
},
methods: {
......@@ -96,7 +99,31 @@ export default {
console.log("打开")
},
initData(){
console.log("initData")
const eventChannel = this.getOpenerEventChannel();
eventChannel.once('cgDetail', ({data}) => {
console.log(data)
uni.$u.http.post('/xzgl/cgsqList', {"stid":data.stid,"zyid":data.zyid} ).then(res => {
console.log('cgsqList:',res);
// 数据处理
this.sqItem = {
Num: data.Num,
Status: res[0].flowStatus,
StatusName: data.StatusName,
sqBumen: res[0].sqbmmc,
sqDate: data.sqDate,
sqcglxmc: res[0].sqcglxmc,
sqUser: res[0].sqrmc,
zyid: res[0].zyid,
bz:res[0].bz
}
this.goodsInfoList = res
console.log('sqItem:',this.sqItem);
console.log('goodsInfoList:',this.goodsInfoList);
}).catch(err => {
uni.$u.toast(err)
})
})
}
},
onReady() {
......
......@@ -34,7 +34,8 @@
// xqdh: "24XQ0001"
// zyid: 1002
// },
]
],
sqDataList:[]
};
},
computed: {
......@@ -64,50 +65,61 @@
key: 'userInfo',
success: function (res) {
console.log(res.data);
_self.userInfo = res.data
if(res.data){
_self.userInfo = res.data
}
}
});
this.sqList.length = 0
const data = {"stid":this.userInfo.st_id,"zyid":""};
uni.$u.http.post('/xzgl/cgsqList', data ).then(data => {
console.log(data);
// 数据处理:
uni.setStorage({ key: 'cgList', data: data})
data.map(item=>{
this.sqList.push({
Num : item.xqdh,
Status : item.flowStatus,
StatusName : item.flowName,
sqUser : item.sqrmc,
sqBumen : item.sqbmmc,
sqDate : item.sqrq.split('T').join(" ")
if(this.userInfo){
const parameter = {"stid":this.userInfo.st_id,"zyid":""};
uni.$u.http.post('/xzgl/cgsqList', parameter ).then(data => {
console.log(data);
// 数据处理:
uni.setStorage({ key: 'cgList', data: data})
this.sqDataList = data
data.map(item=>{
this.sqList.push({
stid : this.userInfo.st_id,
zyid : item.zyid,
Num : item.xqdh,
Status : item.flowStatus,
StatusName : item.flowName,
sqUser : item.sqrmc,
sqBumen : item.sqbmmc,
sqDate : item.sqrq.split('T').join(" ")
})
})
this.sqList.sort((a, b) => {
const dateA = new Date(a.sqDate).getTime();
const dateB = new Date(b.sqDate).getTime();
return dateB - dateA;
});
}).catch(err => {
uni.$u.toast(err)
})
this.sqList.sort((a, b) => {
const dateA = new Date(a.sqDate).getTime();
const dateB = new Date(b.sqDate).getTime();
return dateB - dateA;
});
}).catch(err => {
uni.$u.toast(err)
})
}else{
// uni.redirectTo({
// url: '/pages/Login'
// });
}
},
toDetail(item){
console.log("toDetail:",item)
uni.navigateTo({
url: '/pages/workSpace/wupin/wupinCGDetail',
animationType: 'pop-in',
animationDuration: 200,
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
someEvent: function(data) {
console.log(data)
}
// cgDetail: function(data) {
// console.log(data)
// },
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', { data: item })
uni.$emit('cgDetail',{data:item})
res.eventChannel.emit('cgDetail', { data: item })
}
});
},
......@@ -128,7 +140,7 @@
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })
}
});
}
},
},
}
</script>
......
......@@ -163,15 +163,13 @@
</view>
<view class="pdtb10 fl-rsbc bgwhite">
<view class="w100 fl-rsbc mgt10 bgwhite cu bdr">
<checkbox-group @change="radioChange">
<label style="font-size: 12px;" class="mgr pdr">
<!-- iconColor="#FFF" activeBackgroundColor="#2452D1" -->
<checkbox value="saveUserName" color="#2452D1" style="transform: translateX(-3px) scale(0.6);" />安排领导
</label>
<label style="font-size: 12px;">
<!-- iconColor="#FFF" activeBackgroundColor="#2452D1" -->
<checkbox value="saveUserName" color="#2452D1" style="transform: translateX(-3px) scale(0.6);" />安排技术
</label>
<checkbox-group @change="radioChange" class="fl-wrap">
<view style="font-size: 16px; width:110px;" class="mgb10">
<checkbox :value="ldvalue" color="#2452D1" style="transform: translateX(-3px) scale(0.6);" />安排领导
</view>
<view style="font-size: 16px; width:110px;" class="mgb10">
<checkbox :value="jsvalue" color="#2452D1" style="transform: translateX(-3px) scale(0.6);" />安排技术
</view>
</checkbox-group>
</view>
</view>
......
......@@ -138,6 +138,11 @@ p{ margin: 0px; }
}
.h100{
height: calc(100vh - 44px);
overflow-y: auto;
}
.h-130{
height: calc(100vh - 90px);
overflow-y: auto;
}
.pdb50{
padding-bottom: 66px;
......
static/icon/wpcg.png

2.4 KB | W: | H:

static/icon/wpcg.png

2.4 KB | W: | H:

static/icon/wpcg.png
static/icon/wpcg.png
static/icon/wpcg.png
static/icon/wpcg.png
  • 2-up
  • Swipe
  • Onion skin
static/icon/wpsl.png

2.5 KB | W: | H:

static/icon/wpsl.png

2.6 KB | W: | H:

static/icon/wpsl.png
static/icon/wpsl.png
static/icon/wpsl.png
static/icon/wpsl.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -15,7 +15,23 @@ export default new Vuex.Store({
},
mutations: {
setUserInfo(state, userinfo) {
state.userinfo = userinfo;
},
state.userinfo = userinfo;
},
initData() {
console.log("initData-userInfo");
uni.getStorage({
key: 'userInfo',
success: function (res) {
console.log(res.data);
if(res.data){
state.userInfo = res.data
}else{
uni.redirectTo({
url: '/pages/Login'
});
}
}
});
},
},
});
\ No newline at end of file
......@@ -138,6 +138,11 @@ p{ margin: 0px; }
}
.h100{
height: calc(100vh - 44px);
overflow-y: auto;
}
.h-130{
height: calc(100vh - 90px);
overflow-y: auto;
}
.pdb50{
padding-bottom: 66px;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册