From 508f805bae4f74c9432d82c045d895a62ea1f099 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期六, 21 十月 2023 13:32:49 +0800
Subject: [PATCH] Merge branch 'zwf/style' into dev
---
src/views/operate/scrap/AddScrapDialog.vue | 243 ++++++---------
src/assets/style/index.scss | 3
src/views/overview/index.vue | 35 +
src/components/makepager/SimpleSearchInput.vue | 556 +++++++++++++++++++++++++++++++++++++
src/components/makepager/CommonFormTableView.vue | 45 +-
5 files changed, 711 insertions(+), 171 deletions(-)
diff --git a/src/assets/style/index.scss b/src/assets/style/index.scss
index 95f617a..dcbbdaf 100644
--- a/src/assets/style/index.scss
+++ b/src/assets/style/index.scss
@@ -132,6 +132,9 @@
.yes-cursor {
cursor: pointer;
}
+.background_color_eee {
+ background: #eee;
+}
.Badge {
background: #d3d3d3;
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 7c82937..0e99386 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -59,25 +59,14 @@
:prop="'tableData.' + scope.$index + '.' + item.prop"
>
<div class="custom-name">
- <el-select
- v-model="scope.row[item.prop]"
- placeholder="璇烽�夋嫨"
- size="mini"
- style="width: 80%"
- @change="
- (val) => {
- selProductNameClick(val)
- }
- "
+ <SimpleSearchInput
+ :echoValue="scope.row[item.prop]"
+ :echoName="scope.row[item.prop]"
+ checkedNum="1"
+ :clearable="true"
+ @select-user="selProductNameClick"
>
- <el-option
- v-for="item in productNameOptions"
- :key="item.id"
- :label="item.name"
- :value="{ value: item.id, label: item.name, amount: item.amount, unit: item.unit }"
- >
- </el-option>
- </el-select>
+ </SimpleSearchInput>
</div>
</el-form-item>
<el-form-item
@@ -260,10 +249,11 @@
import { getLocationList } from "@/api/warehouseManage/warehouse"
import { getCompanyList } from "@/api/common/other"
import { getRuleList } from "@/api/operate/inventoryAdjustment"
+import SimpleSearchInput from "@/components/makepager/SimpleSearchInput"
// import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
export default {
name: "CommmonFormTableView",
- components: {},
+ components: { SimpleSearchInput },
props: {
detailEnter: {
type: Boolean,
@@ -387,13 +377,15 @@
})
},
selProductNameClick(item) {
+ console.log(item)
this.tableList.tableData.map((ite) => {
- if (ite.productName.label === item.label) {
- ite.productId = item.value
- ite.productName = item.label
- ite.amount = item.amount
- ite.unit = item.unit
- }
+ console.log(ite)
+ // if (ite.productName === item.name) {
+ ite.productId = item.id
+ ite.productName = item.name
+ ite.amount = item.amount
+ ite.unit = item.unit
+ // }
})
console.log(this.tableList.tableData)
},
@@ -537,6 +529,9 @@
// 鍗曢�夎鐩稿叧
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex
+ },
+ setFormItem(val) {
+ console.log(val)
}
}
}
diff --git a/src/components/makepager/SimpleSearchInput.vue b/src/components/makepager/SimpleSearchInput.vue
new file mode 100644
index 0000000..ddd2114
--- /dev/null
+++ b/src/components/makepager/SimpleSearchInput.vue
@@ -0,0 +1,556 @@
+<template>
+ <el-select
+ v-model="selectValue"
+ ref="search-select"
+ popper-class="user-simple-search-input-popper"
+ :popper-append-to-body="true"
+ :disabled="disabled"
+ :placeholder="placeholder"
+ style="width: 100%"
+ class="user-simple-search-input"
+ @visible-change="changeSelectStatus"
+ :clearable="clearable"
+ filterable
+ size="mini"
+ @clear="selectClear"
+ >
+ <el-option :label="selectLabel" :value="selectValue">
+ <div class="container" @click="endSelect">
+ <div class="search">
+ <el-input
+ placeholder="鎼滅储浜у搧鍚嶇О"
+ v-model.trim="keyword"
+ maxlength="20"
+ @keyup.enter.native="updateSearchList(true)"
+ >
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="updateSearchList(true)"></i>
+ </el-input>
+ </div>
+ <div v-if="checkedNum > 1">
+ <div class="selected-text">
+ 宸查��({{ selectedUser.length }})锛�
+ <span class="user-text" v-for="(user, index) in selectedUser" :key="index">
+ {{ user[obj.name] }}
+ <span class="iconfont ico-delete-user" @click="deleteUser(user.id)"></span>
+ {{ selectedUser.length > index + 1 ? "," : "" }}
+ </span>
+ </div>
+ <p class="fs12-tip" v-show="selectedUser.length == checkedNum">鎻愮ず锛氭渶澶氶�夋嫨{{ checkedNum }}浜猴紒</p>
+ </div>
+ <!-- <div class="bar">
+ <span class="desc">璇烽�夋嫨浜у搧锛坽{ listData.length }}锛�</span>
+ </div> -->
+ <div class="list" v-loading="loading" element-loading-text="鎷煎懡鍔犺浇涓�">
+ <ul class="infinite-list" @scroll="loadList">
+ <div class="background_color_eee">
+ <el-row :gutter="0">
+ <el-col :span="8">
+ <div class="grid-content bg-purple">
+ <span class="name">浜у搧鍚嶇О</span>
+ </div>
+ </el-col>
+ <el-col :span="8">
+ <div class="grid-content bg-purple">鍐呴儴缂栫爜</div>
+ </el-col>
+
+ <el-col :span="5">
+ <div class="grid-content bg-purple">鍦ㄥ簱鏁伴噺</div>
+ </el-col>
+ <el-col :span="3">
+ <div class="grid-content bg-purple">璁¢噺鍗曚綅</div>
+ </el-col>
+ </el-row>
+ </div>
+ <li class="empty" v-if="listData.length === 0">鏆傛棤鏁版嵁</li>
+ <template v-else>
+ <li
+ v-for="(user, index) in listData"
+ :key="index"
+ @click="selectUser(user)"
+ :class="selectValue == user.id ? 'highlight-color' : ''"
+ >
+ <el-row :gutter="0">
+ <el-col :span="8">
+ <div class="grid-content bg-purple" :title="user[obj.name]">
+ {{ user[obj.name] || "--" }}
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="grid-content bg-purple" :title="user.internalReference">
+ <span class="name">{{ user.internalReference || "--" }}</span>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="grid-content bg-purple" :title="user.amount">
+ {{ user.amount || "--" }}
+ </div>
+ </el-col>
+ <el-col :span="4">
+ <div class="grid-content bg-purple" :title="user.unit">
+ {{ user.unit || "--" }}
+ </div>
+ </el-col>
+ </el-row>
+ </li>
+ <li class="loading">{{ loading ? "鍔犺浇涓�" : "宸茬粡鍒板簳" }}</li>
+ </template>
+ </ul>
+ </div>
+ </div>
+ </el-option>
+ <!-- <DataSet ref="dataSet" moduleName="鐗╂枡绠$悊"></DataSet> -->
+ </el-select>
+</template>
+
+<script>
+import { getProductList } from "@/api/product/product"
+// import DataSet from "@/views/ShopFloorControl/facilty/components/DataSet";
+export default {
+ name: "UserSimpleSearchInput",
+ components: {
+ // DataSet,
+ },
+ props: {
+ placeholder: {
+ type: [String],
+ default: "璇烽�夋嫨"
+ },
+ disabled: {
+ type: [Boolean],
+ default: false
+ },
+ // 鍥炴樉鍊糲ode
+ echoName: {
+ type: [String],
+ default: ""
+ },
+ // 鍥炴樉鍚嶇Оname
+ echoValue: {
+ type: [String],
+ default: ""
+ },
+ // 鍙�夋暟閲�
+ checkedNum: {
+ type: [String, Number],
+ default: 1
+ },
+ //鍙惁娓呯┖
+ clearable: {
+ type: [Boolean],
+ default: false
+ },
+ // 璇锋眰鎺ュ彛鐨勫弬鏁�
+ // types: {
+ // type: [Array],
+ // default: () => ["鍗婃垚鍝�", "鎴愬搧"]
+ // },
+ request: {
+ type: [String, Number],
+ defalut: ""
+ },
+ size: {
+ type: [String],
+ defalut: "medium"
+ }
+ },
+ data() {
+ return {
+ // e-select缁勪欢model缁戝畾鍙橀噺锛屽崰浣嶄娇鐢�
+ selectValue: this.echoValue ? this.echoValue : this.echoName ? this.echoName : "",
+ selectLabel: "",
+ // 鎼滅储妗嗘悳绱㈣瘝
+ keyword: "",
+ // 鏌ヨ椤�
+ page: 1,
+ // 姣忛〉灞曠ず鏁伴噺
+ pageSize: 10,
+ // 鏁版嵁鎬婚噺
+ count: 0,
+ // 鎼滅储鐢ㄦ埛缁撴灉鏁扮粍
+ listData: [],
+ // 鏄惁缁撴潫閫夋嫨
+ isEndSelect: false,
+ selectedUser: [],
+ loading: true,
+ num: 0,
+ obj: {
+ name: "name",
+ id: "id"
+ }
+ }
+ },
+ computed: {},
+ watch: {
+ echoName(val) {
+ console.log(val)
+ this.selectValue = this.echoValue ? this.echoValue : this.echoName ? this.echoName : ""
+ this.checkMoreInit()
+ },
+ request(val) {
+ this.getName(val)
+ }
+ },
+ beforeMount() {
+ this.checkMoreInit()
+ this.getName(this.request)
+ this.num = 0
+ },
+ methods: {
+ getName(val) {
+ if (val == 1) {
+ // 鍏朵粬鎼滅储閰嶇疆杩欓噷
+ this.obj = {
+ name: "gaugeName",
+ id: "id"
+ }
+ }
+ },
+ // 鏇存柊鎼滅储鍒楄〃
+ updateSearchList(needInit = false, param = {}) {
+ let listParams
+ // 鍒濆鍖栫敤鎴蜂俊鎭垪琛ㄥ叆鍙�
+ if (needInit) {
+ this.page = 1
+ this.count = 0
+ this.listData = []
+ }
+ console.log(this.keyword)
+ listParams = {
+ keyWord: this.keyword,
+ page: this.page,
+ pageSize: this.pageSize,
+ ...param
+ }
+ this.loading = true
+ if (this.request) {
+ // 鍏朵粬
+ } else {
+ // 浜у搧
+ getProductList(listParams).then((res) => {
+ if (res && res.code === 200 && res.data) {
+ this.loading = false
+ this.page = this.page + 1
+ this.count = res.total
+ if (res.data && Array.isArray(res.data)) {
+ let arr = JSON.parse(JSON.stringify(res.data))
+ this.listData = this.listData.concat(arr)
+ }
+ // if (this.num == 0 && this.listData.length == 0) {
+ // this.$refs.dataSet.materialVisible = true
+ // }
+ this.num += 1
+ }
+ })
+ }
+
+ setTimeout(() => {
+ this.loading = false
+ }, 10000)
+ },
+ // 鍔ㄦ�佸姞杞藉垪琛�
+ loadList(event) {
+ const { clientHeight, scrollTop, scrollHeight } = event.currentTarget
+ // 褰撴粴鍔╰op璺濈澶т簬涓�灞忕殑璺濈锛屽姞杞戒笅涓�椤垫暟鎹�
+ if (scrollTop > scrollHeight - clientHeight * 2) {
+ // 褰搇oading鍔ㄧ敾鏈粨鏉熸椂銆佹垨鑰呭垪琛ㄦ暟鎹潯鏁板ぇ浜庢帴鍙h繑鍥炴�绘潯鏁版椂涓嶅啀璇锋眰鏁版嵁
+ if (!this.loading && this.listData.length <= this.count) {
+ this.updateSearchList()
+ }
+ }
+ },
+ // 閫夋嫨鐢ㄦ埛
+ selectUser(user) {
+ if (this.checkedNum > 1) {
+ if (this.selectedUser.length < this.checkedNum) {
+ if (this.selectValue.indexOf(user.id) == -1) {
+ this.selectedUser.push(user)
+ this.selectValue = this.selectedUser
+ .map((item) => {
+ return item.id
+ })
+ .join(",")
+ this.selectLabel = this.selectedUser
+ .map((item) => {
+ return item[this.obj.name]
+ })
+ .join(",")
+ }
+ }
+ this.$emit("select-user", this.selectValue, this.selectLabel, this.selectedUser)
+ } else {
+ // 鍙樻洿閫夋嫨寮�鍏�
+ this.isEndSelect = false
+ // 璧嬪�糴l-select缁勪欢鍊�
+ this.selectValue = user.id
+ this.selectLabel = user[this.obj.name]
+ // 鍛婄煡鐖剁粍浠舵墍閫夌敤鎴锋暟鎹�
+ this.selectedUser = user
+ this.$emit("select-user", user)
+ }
+ },
+ deleteUser(id) {
+ for (let i = 0; i < this.selectedUser.length; i++) {
+ if (this.selectedUser[i].id == id) {
+ this.selectedUser.splice(i, 1)
+ }
+ }
+ this.selectValue = this.selectedUser
+ .map((item) => {
+ return item.id
+ })
+ .join(",")
+ this.selectLabel = this.selectedUser
+ .map((item) => {
+ return item[this.obj.name]
+ })
+ .join(",")
+ this.$emit("select-user", this.selectValue, this.selectLabel, this.selectedUser)
+ },
+ // 澶氶�夋椂鍊�
+ checkMoreInit() {
+ if (this.checkedNum > 1 && this.echoName) {
+ this.selectedUser = []
+ this.selectLabel = this.echoName
+ let arr = this.echoName.split(",")
+ let arr2 = this.echoValue.split(",")
+ for (let i = 0; i < arr.length; i++) {
+ let item = { id: arr2[i] }
+ item[this.obj.name] = arr[i]
+ this.selectedUser.push(item)
+ }
+ } else {
+ if (this.echoName) {
+ this.selectedUser = []
+ this.selectLabel = this.echoName ? this.echoName : ""
+ let item = { id: this.echoValue }
+ item[this.obj.name] = this.echoName
+ this.selectedUser.push(item)
+ this.selectValue = this.echoValue ? this.echoValue : this.echoName ? this.echoName : ""
+ } else {
+ this.selectedUser = []
+ this.selectLabel = ""
+ this.selectValue = ""
+ }
+ }
+ },
+ // 缁撴潫閫夋嫨銆佸叧闂脊绐�
+ endSelect(event) {
+ this.isEndSelect && event.stopPropagation()
+ },
+ // 鍙樻洿閫夋嫨鐘舵��
+ changeSelectStatus(status, value) {
+ this.isEndSelect = status
+ // 褰搒tatus涓簍rue鏃讹紝dialog鎵撳紑锛屽垵濮嬪寲page
+ if (status) {
+ this.keyword = ""
+ if (value != "clear") {
+ this.updateSearchList(true)
+ }
+ }
+ },
+ selectClear() {
+ if (this.checkedNum > 1) {
+ this.selectValue = []
+ this.selectLabel = []
+ this.selectedUser = []
+ this.$emit("select-user", this.selectValue)
+ } else {
+ this.isEndSelect = true
+ // 璧嬪�糴l-select缁勪欢鍊�
+ this.selectValue = ""
+ this.selectLabel = ""
+ // 鍛婄煡鐖剁粍浠舵墍閫夌敤鎴锋暟鎹�
+ this.selectedUser = ""
+ this.$emit("select-user", this.selectedUser)
+ }
+ this.changeSelectStatus(true, "clear")
+ }
+ }
+}
+</script>
+
+<style lang="scss">
+.user-simple-search-input-popper {
+ max-width: 630px;
+ .el-select-dropdown__wrap {
+ min-width: 509px;
+ width: 100%;
+ min-height: 370px;
+
+ .el-select-dropdown__list {
+ width: 100%;
+ height: 350px;
+ padding: 0;
+
+ & > .el-select-dropdown__item {
+ width: 100%;
+ height: 350px;
+ background-color: rgba(255, 255, 255, 1);
+ padding: 0;
+
+ & > .container {
+ width: 96%;
+ height: 100%;
+ padding: 2%;
+
+ .search {
+ margin-bottom: 5px;
+
+ & > .el-input {
+ & > input {
+ width: 100%;
+ height: 40px;
+ background: rgba(255, 255, 255, 1);
+ border-radius: 4px;
+ font-size: 14px;
+
+ font-weight: 400;
+ color: rgba(175, 179, 190, 1);
+ }
+
+ & > .el-input__suffix {
+ & > .el-input__suffix-inner {
+ font-size: 19px;
+ }
+
+ & > .el-icon-circle-close {
+ display: none;
+ }
+
+ & > i.el-input__icon.el-input__validateIcon.el-icon-circle-check {
+ display: none;
+ }
+ }
+ }
+ }
+
+ .bar {
+ width: 100%;
+ height: 40px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ & > .desc {
+ font-size: 14px;
+
+ font-weight: 400;
+ color: rgba(102, 102, 102, 1);
+ }
+ }
+
+ .list {
+ width: 100%;
+ height: calc(100% - 40px);
+ background: rgba(250, 250, 252, 1);
+ border: 1px solid rgba(250, 250, 252, 1);
+
+ & > ul {
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 100%;
+ div {
+ height: 40px;
+ font-size: 14px;
+ line-height: 40px;
+ font-weight: 600;
+ color: rgba(51, 51, 51, 1);
+ padding: 0 4px;
+ // background:#eee;
+ }
+ .highlight-color {
+ background: #eee;
+ }
+ }
+
+ & > ul > li {
+ width: 100%;
+ height: 40px;
+ font-size: 14px;
+ line-height: 40px;
+ font-weight: 400;
+ color: rgba(51, 51, 51, 1);
+ padding: 0 4px;
+ display: inline-block;
+ float: left;
+ &:hover {
+ background: rgba(255, 255, 255, 1);
+ }
+
+ &.empty {
+ width: 100%;
+ height: calc(100% - 80px);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ &:hover {
+ background-color: transparent;
+ }
+ }
+
+ &.loading {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ & > .el-row > .el-col {
+ & > .grid-content {
+ line-height: 48px;
+ padding: 0 7px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ &:nth-of-type(1) > .grid-content {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+
+ & > span.name {
+ width: calc(100% - 26px - 10px);
+ margin-left: 10px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+ }
+ }
+ }
+ }
+ .user-text {
+ display: inline-block;
+ line-height: 24px;
+ }
+ .ico-delete-user {
+ color: #aaa;
+ font-weight: normal;
+ font-size: 16px;
+ display: none;
+ line-height: 24px;
+ padding: 0 4px 0 2px;
+ vertical-align: middle;
+ margin-top: -2px;
+ }
+ .user-text:hover .ico-delete-user {
+ display: inline-block;
+ }
+ .fs12-tip {
+ font-size: 12px;
+ font-weight: normal;
+ line-height: 16px;
+ }
+ .selected-text {
+ white-space: normal;
+ line-height: 24px;
+ }
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/src/views/operate/scrap/AddScrapDialog.vue b/src/views/operate/scrap/AddScrapDialog.vue
index 8e2b8c3..73911a4 100644
--- a/src/views/operate/scrap/AddScrapDialog.vue
+++ b/src/views/operate/scrap/AddScrapDialog.vue
@@ -18,14 +18,7 @@
<i class="el-icon-s-tools"></i>
<span>鍔ㄤ綔</span>
</span>
- <el-button
- v-if="showEdit"
- plain
- size="mini"
- style="margin-left: 15px"
- @click="editClick"
- >缂栬緫</el-button
- >
+ <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button>
</div>
</div>
<!-- 鍐呭 -->
@@ -52,26 +45,16 @@
<el-row>
<el-col :span="12">
<el-form-item label="浜у搧" prop="productName">
- <el-select
- v-model="editConfig.infomation.productName"
- placeholder="璇烽�夋嫨"
- size="mini"
- style="width: 90%"
+ <SimpleSearchInput
+ :echoValue="editConfig.infomation.productName"
+ :echoName="editConfig.infomation.productName"
+ checkedNum="1"
+ :clearable="true"
+ @select-user="selProductChange"
:disabled="!showFooter"
- @change="selProductChange"
+ style="width: 90%"
>
- <el-option
- v-for="item in productOptions"
- :key="item.id"
- :label="item.name"
- :value="{
- value: item.id,
- label: item.name,
- unit: item.unit,
- }"
- >
- </el-option>
- </el-select>
+ </SimpleSearchInput>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -83,12 +66,7 @@
style="width: 90%"
:disabled="!showFooter"
>
- <el-option
- v-for="item in toLocationOptions"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
+ <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@@ -101,7 +79,7 @@
:min="0"
:precision="2"
:controls="false"
- style="width: 85%"
+ style="width: 90%"
:disabled="!showFooter"
></el-input-number>
<span>{{ " " + unit }}</span>
@@ -116,12 +94,7 @@
style="width: 90%"
:disabled="!showFooter"
>
- <el-option
- v-for="item in toLocationOptions"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
+ <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@@ -142,25 +115,18 @@
</el-form>
<!-- 灏� -->
<div slot="footer" class="dialog-footer">
- <el-button
- type="primary"
- size="small"
- @click="saveClick('form')"
- :disabled="!showFooter"
- >淇濆瓨</el-button
- >
- <el-button size="small" @click="editConfig.visible = false"
- >鍙栨秷</el-button
- >
+ <el-button type="primary" size="small" @click="saveClick('form')" :disabled="!showFooter">淇濆瓨</el-button>
+ <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
-import { getProductList } from "@/api/product/product";
-import { getLocationList } from "@/api/overview/overview";
-import { addDisuse, finishDisuse, updateScrap } from "@/api/operate/scrap";
+import { getProductList } from "@/api/product/product"
+import { getLocationList } from "@/api/overview/overview"
+import { addDisuse, finishDisuse, updateScrap } from "@/api/operate/scrap"
+import SimpleSearchInput from "@/components/makepager/SimpleSearchInput"
export default {
name: "AddScrapDialog",
props: {
@@ -170,12 +136,12 @@
return {
visible: false,
title: "鏂板缓",
- infomation: {},
- };
- },
- },
+ infomation: {}
+ }
+ }
+ }
},
- components: {},
+ components: { SimpleSearchInput },
computed: {},
data() {
return {
@@ -183,19 +149,11 @@
editConfig: this.editCommonConfig,
rules: {
// 浜у搧锛屾暟閲忓繀濉�
- productName: [
- { required: true, message: "璇烽�夋嫨浜у搧", trigger: "change" },
- ],
+ productName: [{ required: true, validator: this.validatorProduct, trigger: "change" }],
amount: [{ required: true, message: "璇疯緭鍏ユ暟閲�", trigger: "blur" }],
- fromLocationId: [
- { required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" },
- ],
- toLocationId: [
- { required: true, message: "璇烽�夋嫨鎶ュ簾浣嶇疆", trigger: "change" },
- ],
- sourceNumber: [
- { required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" },
- ],
+ fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }],
+ toLocationId: [{ required: true, message: "璇烽�夋嫨鎶ュ簾浣嶇疆", trigger: "change" }],
+ sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }]
},
memberOptions: [],
productOptions: [],
@@ -203,162 +161,167 @@
list: [
{ label: "鑽夌", status: "todo", value: 1 },
{ label: "灏辩华", status: "todo", value: 3 },
- { label: "瀹屾垚", status: "todo", value: 4 },
+ { label: "瀹屾垚", status: "todo", value: 4 }
],
showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨
currentState: "todo", // 褰撳墠鐘舵��
unit: "",
showButton: true,
- isValidateClick: false, // 楠岃瘉鏄惁鏄剧ず
- };
+ isValidateClick: false // 楠岃瘉鏄惁鏄剧ず
+ }
},
created() {
- this.setBottonView();
- this.getProductList();
- this.getLocationList();
- this.unit = this.editConfig.infomation.unit || "";
+ this.setBottonView()
+ this.getProductList()
+ this.getLocationList()
+ this.unit = this.editConfig.infomation.unit || ""
},
methods: {
// 浜у搧
async getProductList() {
await getProductList({
page: 1,
- pageSize: 100,
+ pageSize: 100
}).then((res) => {
// console.log(res.data)
if (res.code === 200) {
if (res.data && res.data.length > 0) {
- this.productOptions = res.data;
+ this.productOptions = res.data
}
}
- });
+ })
},
// 鑾峰彇浠撳簱浣嶇疆鍒楄〃
async getLocationList() {
await getLocationList({
keyWord: "",
page: 0,
- pageSize: 0,
+ pageSize: 0
}).then((res) => {
- console.log(res);
+ console.log(res)
if (res.code === 200) {
- this.toLocationOptions = res.data;
+ this.toLocationOptions = res.data
}
- });
+ })
},
// 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず
setBottonView() {
- if (
- this.editConfig.title === "鏂板缓" ||
- this.editConfig.title === "缂栬緫"
- ) {
- this.showButton = false;
- this.showEdit = false;
- this.showFooter = true;
- this.isValidateClick = false;
+ if (this.editConfig.title === "鏂板缓" || this.editConfig.title === "缂栬緫") {
+ this.showButton = false
+ this.showEdit = false
+ this.showFooter = true
+ this.isValidateClick = false
} else if (this.editConfig.infomation.status === 4) {
- this.showButton = false;
- this.showEdit = false;
- this.showFooter = false;
- this.isValidateClick = false;
+ this.showButton = false
+ this.showEdit = false
+ this.showFooter = false
+ this.isValidateClick = false
} else {
- this.showButton = true;
- this.showEdit = false;
- this.showFooter = false;
- this.isValidateClick = true;
+ this.showButton = true
+ this.showEdit = false
+ this.showFooter = false
+ this.isValidateClick = true
}
if (this.editConfig.title === "鏂板缓") {
- this.list[0].status = "active";
+ this.list[0].status = "active"
} else {
this.list.map((item) => {
if (item.value === this.editConfig.infomation.status) {
- item.status = "active";
+ item.status = "active"
} else {
- item.status = "todo";
+ item.status = "todo"
}
- });
+ })
}
},
// 鍏抽棴
handleClose() {
- this.editConfig.visible = false;
+ this.editConfig.visible = false
},
// 缂栬緫
editClick() {
- this.showEdit = false;
- this.showFooter = true;
+ this.showEdit = false
+ this.showFooter = true
},
// 淇濆瓨
saveClick(formName) {
if (this.editCommonConfig.title === "鏂板缓") {
this.$refs[formName].validate((valid) => {
if (valid) {
- this.editConfig.infomation.productId = this.productId;
- this.editConfig.infomation.productName = this.productName;
- this.editConfig.infomation.unit = this.unit;
+ this.editConfig.infomation.productId = this.productId
+ this.editConfig.infomation.productName = this.productName
+ this.editConfig.infomation.unit = this.unit
addDisuse({
- ...this.editConfig.infomation,
+ ...this.editConfig.infomation
}).then((res) => {
- console.log(res);
- this.editConfig.visible = false;
+ console.log(res)
+ this.editConfig.visible = false
if (res.code === 200) {
- this.$message.success("娣诲姞鎴愬姛");
- this.$parent.getData();
+ this.$message.success("娣诲姞鎴愬姛")
+ this.$parent.getData()
}
- });
+ })
}
- });
+ })
} else if (this.editCommonConfig.title === "缂栬緫") {
this.$refs[formName].validate((valid) => {
if (valid) {
- this.editConfig.infomation.productId = this.productId;
- this.editConfig.infomation.productName = this.productName;
- this.editConfig.infomation.unit = this.unit;
+ this.editConfig.infomation.productId = this.productId
+ this.editConfig.infomation.productName = this.productName
+ this.editConfig.infomation.unit = this.unit
updateScrap({
- amount:this.editConfig.infomation.amount, //鏁伴噺
+ amount: this.editConfig.infomation.amount, //鏁伴噺
baseOperationType: 1,
fromLocationId: this.editConfig.infomation.fromLocationId,
id: this.editConfig.infomation.id,
number: this.editConfig.infomation.number,
- operationDate:this.editConfig.infomation.operationDate,
+ operationDate: this.editConfig.infomation.operationDate,
productId: this.editConfig.infomation.productId,
sourceNumber: this.editConfig.infomation.sourceNumber,
status: this.editConfig.infomation.status,
- toLocationId: this.editConfig.infomation.toLocationId,
+ toLocationId: this.editConfig.infomation.toLocationId
}).then((res) => {
- console.log(res);
- this.editConfig.visible = false;
+ console.log(res)
+ this.editConfig.visible = false
if (res.code === 200) {
- this.$message.success("淇敼鎴愬姛");
- this.$parent.getData();
+ this.$message.success("淇敼鎴愬姛")
+ this.$parent.getData()
}
- });
+ })
}
- console.log(this.editConfig.infomation, "鐪嬬湅鏄暐");
- });
+ })
}
},
// 閫夋嫨浜у搧
selProductChange(val) {
- this.unit = val.unit;
- this.productName = val.label;
- this.productId = val.value;
+ this.unit = val.unit
+ this.productName = val.name
+ this.productId = val.id
+ this.editConfig.infomation.productName = val.name
},
// 楠岃瘉
async validateClick() {
- console.log(this.editConfig.infomation.id, "xxx");
+ console.log(this.editConfig.infomation.id, "xxx")
await finishDisuse(this.editConfig.infomation.id).then((res) => {
- console.log(res);
- this.editConfig.visible = false;
+ console.log(res)
+ this.editConfig.visible = false
if (res.code === 200) {
- this.$message.success("楠岃瘉鎴愬姛");
- this.$parent.getData();
+ this.$message.success("楠岃瘉鎴愬姛")
+ this.$parent.getData()
}
- });
+ })
},
- },
-};
+ // 浜у搧鍗曠嫭鏍¢獙
+ validatorProduct(rule, value, callback) {
+ if (this.editConfig.infomation.productName && this.editConfig.infomation.productName.length > 0) {
+ callback()
+ } else {
+ callback(new Error("璇烽�夋嫨浜у搧"))
+ }
+ }
+ }
+}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
diff --git a/src/views/overview/index.vue b/src/views/overview/index.vue
index 6cf6cf0..0985bf7 100644
--- a/src/views/overview/index.vue
+++ b/src/views/overview/index.vue
@@ -20,17 +20,24 @@
<div class="label">
<span style="cursor: pointer">{{ item.name }}</span>
</div>
- <div class="set">...</div>
+ <el-dropdown class="set" placement="bottom" trigger="click" @command="handleCommand">
+ <div @click.stop="moreClick()">...</div>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item :command="{ command: '鍏ㄩ儴', item }">鍏ㄩ儴</el-dropdown-item>
+ <el-dropdown-item :command="{ command: '灏辩华', item }">灏辩华</el-dropdown-item>
+ <el-dropdown-item :command="{ command: '瀹屾垚', item }">瀹屾垚</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
</div>
<div class="bottom">
<div class="left">
- <div class="left_view">
+ <div class="left_view" @click.stop="statusClick(item, '灏辩华')">
<span>{{ item.readyCount }}</span>
<span style="margin-left: 5px">灏辩华</span>
</div>
</div>
<div class="right">
- <div class="right_status">
+ <div class="right_status" @click.stop="statusClick(item, '瀹屾垚')">
<span style="cursor: pointer">{{ item.finishCount + " 瀹屾垚" }}</span>
</div>
<!-- <div class="right_status" style="margin-top: 5px">
@@ -79,11 +86,11 @@
this.keyword = val
this.getData()
},
- labelClick(item) {
+ labelClick(item, status) {
console.log(item)
this.$router.push({
name: "overviewList",
- params: { name: item.name, workType: item.baseOperationType, id: item.id }
+ params: { name: item.name, workType: item.baseOperationType, id: item.id, status: status }
})
},
async getData() {
@@ -103,6 +110,21 @@
this.pagerOptions.totalCount = res.data.total
}
})
+ },
+ handleCommand(val) {
+ console.log(val)
+ if (val.command === "鍏ㄩ儴") {
+ this.labelClick(val.item, "")
+ } else {
+ this.labelClick(val.item, val.command)
+ }
+ },
+ // 鏇村
+ moreClick() {},
+ // 鐘舵��
+ statusClick(item, status) {
+ console.log(item)
+ this.labelClick(item, status)
}
}
}
@@ -143,7 +165,7 @@
margin-left: auto;
margin-right: 20px;
font-size: 20px;
- cursor: no-drop;
+ // cursor: no-drop;
color: #000;
transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
@@ -153,6 +175,7 @@
.bottom {
display: flex;
font-size: 13px;
+ margin-top: 30px;
.left {
width: 50%;
// background: #1d80e2;
--
Gitblit v1.8.0