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