diff --git a/patent-calculator/src/App.vue b/patent-calculator/src/App.vue
index 0607758..3fc164e 100644
--- a/patent-calculator/src/App.vue
+++ b/patent-calculator/src/App.vue
@@ -93,18 +93,18 @@ export default {
title: "상표 견적 도우미",
fixed: false,
menu: [
- {
- icon: "add",
- title: "상품추가",
- component: "ProductAdder",
- badge: false
- },
{
icon: "search",
title: "검색",
component: "Search",
badge: false
},
+ {
+ icon: "add",
+ title: "상품추가",
+ component: "ProductAdder",
+ badge: false
+ },
{
icon: "work",
title: "상품 관리",
diff --git a/patent-calculator/src/components/Briefcase.vue b/patent-calculator/src/components/Briefcase.vue
index 5b65644..963f2b3 100644
--- a/patent-calculator/src/components/Briefcase.vue
+++ b/patent-calculator/src/components/Briefcase.vue
@@ -36,7 +36,7 @@
X
O
-
+ |
diff --git a/patent-calculator/src/components/BriefcaseSummary.vue b/patent-calculator/src/components/BriefcaseSummary.vue
index 78fae7a..37ca76f 100644
--- a/patent-calculator/src/components/BriefcaseSummary.vue
+++ b/patent-calculator/src/components/BriefcaseSummary.vue
@@ -13,9 +13,9 @@
:key="classNo"
@click="copyToClipboard(classNo, products)"
>
- {{ classes[classNo] }}
+ {{ classes[classNo] }}
-
+
{{ Object.keys(products).length }}
diff --git a/patent-calculator/src/components/ClassifiedResult.vue b/patent-calculator/src/components/ClassifiedResult.vue
index faf0baa..fc127a0 100644
--- a/patent-calculator/src/components/ClassifiedResult.vue
+++ b/patent-calculator/src/components/ClassifiedResult.vue
@@ -1,13 +1,7 @@
-
-
- {{tab.name}}
+
+ {{tab.name}}
@@ -16,9 +10,13 @@
-
- 비고시 상품으로
-
+ 비고시 상품으로
-
-
-
-
- |
- {{ props.item['NICE분류'] }} |
- {{ props.item['지정상품(국문)'] }} |
-
-
- delete
-
- |
-
+
+
+
+
+ |
+ |
+ {{ props.item['NICE분류'] }} |
+ {{ props.item['지정상품(국문)'] }} |
+
+
+ delete
+
+ |
+
@@ -57,16 +63,15 @@
-
+
분류 적용
-
- 고시 상품으로
-
+ 고시 상품으로
@@ -79,20 +84,32 @@
class="mt-3"
>
-
+
|
|
{{ props.item['NICE분류'] }} |
- |
-
+
+ |
+
+
delete
|
@@ -111,21 +128,16 @@
분류하신 상품들을 정말로 추가하시겠습니까?
-
+
-
- 추가 확정
-
-
- 취소
-
+ 추가 확정
+ 취소
-
@@ -136,10 +148,7 @@ export default {
return {
tabIsLoaded: false,
activeTab: 1,
- tabs: [
- {index: 0, name: '고시상품'},
- {index: 1, name: '비고시상품'}
- ],
+ tabs: [{ index: 0, name: "고시상품" }, { index: 1, name: "비고시상품" }],
selected: [],
selectedClass: "미지정",
backgroundColor: {},
@@ -198,27 +207,31 @@ export default {
noticed: [],
unnoticed: []
},
- dialogView: false,
- }
+ dialogView: false
+ };
},
computed: {
classes() {
let classes = Object.values(this.$store.getters.classes);
- classes.splice(0, 1); //index 0에 있는 "전체"는 빼고, 나머지 분류들만 리턴해주도록 합니다.
+ classes.splice(0, 1); //index 0에 있는 "전체"는 빼고, 나머지 분류들만 리턴해주도록 합니다.
return classes;
}
},
methods: {
applyClass() {
if (this.selected.length > 0) {
- let selectedClass = -1 //"미지정" class의 id값
+ let selectedClass = -1; //"미지정" class의 id값
if (this.selectedClass != "미지정") {
selectedClass = this.classes.indexOf(this.selectedClass);
for (const selected of this.selected) {
- if ((selectedClass != -1) && (selected['고시명칭'] == false)) {
- let selectedIndex = this.products.unnoticed.findIndex(product => product['id'] == selected['id']);
- this.products.unnoticed[selectedIndex]['NICE분류'] = selectedClass;
- }
+ if (selectedClass != -1 && selected["고시명칭"] == false) {
+ let selectedIndex = this.products.unnoticed.findIndex(
+ product => product["id"] == selected["id"]
+ );
+ this.products.unnoticed[selectedIndex][
+ "NICE분류"
+ ] = selectedClass;
+ }
}
const message =
"선택하신 상품이 " +
@@ -228,56 +241,65 @@ export default {
"로 분류되었습니다.";
this.$noticeEventBus.$emit("raiseNotice", message);
this.selected = [];
- }
- else {
- const message = "지정할 분류를 골라주세요."
+ } else {
+ const message = "지정할 분류를 골라주세요.";
this.$noticeEventBus.$emit("raiseNotice", message);
}
- }
- else {
- const message = "선택된 상품이 없습니다."
+ } else {
+ const message = "선택된 상품이 없습니다.";
this.$noticeEventBus.$emit("raiseNotice", message);
}
},
moveProduct(toTheOther) {
- let movedCount = 0; //몇 개 상품이 이동하였는지를 snackbar에 전달해주기 위한 변수
- if (toTheOther == "toUnnoticed") { //고시 -> 비고시 이동인 경우
- for (const product of this.selected) { // selected에 고시/비고시 섞여있을 수 있음
- if (product['고시명칭']) {
- product['고시명칭'] = false;
- let selectedIndex = this.products.noticed.findIndex(temp => temp['id'] == product['id']);
- this.products.unnoticed.push(this.products.noticed.splice(selectedIndex, 1)[0]);
+ let movedCount = 0; //몇 개 상품이 이동하였는지를 snackbar에 전달해주기 위한 변수
+ if (toTheOther == "toUnnoticed") {
+ //고시 -> 비고시 이동인 경우
+ for (const product of this.selected) {
+ // selected에 고시/비고시 섞여있을 수 있음
+ if (product["고시명칭"]) {
+ product["고시명칭"] = false;
+ let selectedIndex = this.products.noticed.findIndex(
+ temp => temp["id"] == product["id"]
+ );
+ this.products.unnoticed.push(
+ this.products.noticed.splice(selectedIndex, 1)[0]
+ );
movedCount++;
}
}
const message =
- movedCount +
- "개의 고시상품이 비고시상품으로 변경되었습니다.";
+ movedCount + "개의 고시상품이 비고시상품으로 변경되었습니다.";
this.$noticeEventBus.$emit("raiseNotice", message);
- }
- else { //비고시 -> 고시 이동인 경우
+ } else {
+ //비고시 -> 고시 이동인 경우
for (const product of this.selected) {
- if (!product['고시명칭']) {
- product['고시명칭'] = true;
- let selectedIndex = this.products.unnoticed.findIndex(temp => temp['id'] == product['id']);
- this.products.noticed.push(this.products.unnoticed.splice(selectedIndex, 1)[0]);
+ if (!product["고시명칭"]) {
+ product["고시명칭"] = true;
+ let selectedIndex = this.products.unnoticed.findIndex(
+ temp => temp["id"] == product["id"]
+ );
+ this.products.noticed.push(
+ this.products.unnoticed.splice(selectedIndex, 1)[0]
+ );
movedCount++;
}
}
const message =
- movedCount +
- "개의 비고시상품이 고시상품으로 변경되었습니다.";
+ movedCount + "개의 비고시상품이 고시상품으로 변경되었습니다.";
this.$noticeEventBus.$emit("raiseNotice", message);
}
this.selected = [];
},
deleteFromTable(product) {
- if(product['고시명칭']) {
- let selectedIndex = this.products.noticed.findIndex(temp => temp['id'] == product['id']);
+ if (product["고시명칭"]) {
+ let selectedIndex = this.products.noticed.findIndex(
+ temp => temp["id"] == product["id"]
+ );
this.products.noticed.splice(selectedIndex, 1);
- }
- else {
- let selectedIndex = this.products.unnoticed.findIndex(temp => temp['id'] == product['id']);
+ } else {
+ let selectedIndex = this.products.unnoticed.findIndex(
+ temp => temp["id"] == product["id"]
+ );
this.products.unnoticed.splice(selectedIndex, 1)[0];
}
const message =
@@ -288,19 +310,19 @@ export default {
"이(가) 목록에서 삭제되었습니다.";
this.$noticeEventBus.$emit("raiseNotice", message);
},
- submitProductsToBriefcase (products) {
+ submitProductsToBriefcase(products) {
for (const product of products.noticed) {
this.$store.dispatch("addProduct", Object.assign({}, product));
}
for (const product of products.unnoticed) {
this.$store.dispatch("addProduct", Object.assign({}, product));
}
- const message = '상품 관리 탭에서 추가된 상품들을 확인해주세요.';
+ const message = "상품 관리 탭에서 추가된 상품들을 확인해주세요.";
this.$noticeEventBus.$emit("raiseNotice", message);
- this.$submissionAlarmBus.$emit('submissionComplete');
+ this.$submissionAlarmBus.$emit("submissionComplete");
this.dialogView = false;
},
- checkUnclassified (products) {
+ checkUnclassified(products) {
let unclassified = false;
for (const product of products) {
if (product["NICE분류"] == -1) {
@@ -309,29 +331,32 @@ export default {
}
return unclassified;
},
- highlightUnclassified () {
- this.backgroundColor = {background: '#fff0f0'}
+ highlightUnclassified() {
+ this.backgroundColor = { background: "#fff0f0" };
}
},
mounted() {
- this.$submissionAlarmBus.$on('submitProductsToBriefcase', () => {
+ this.$submissionAlarmBus.$on("submitProductsToBriefcase", () => {
if (this.checkUnclassified(this.products.unnoticed)) {
- const message = "아직 미분류 상태인 상품들이 있습니다!"
+ const message = "아직 미분류 상태인 상품들이 있습니다!";
this.$noticeEventBus.$emit("raiseNotice", message);
this.highlightUnclassified();
- }
- else {
+ } else {
this.dialogView = true;
}
});
- this.$productTransmissionBus.$on('transmitClassified', (transmittedProducts) => {
- this.products.noticed = transmittedProducts.noticed;
- this.products.unnoticed = transmittedProducts.unnoticed;
- if (!this.tabIsLoaded) { // tab이 stepper의 step 2에서 mount 되는 경우, 처음에 slidebar가 보이지 않는 버그를 해결
- this.activeTab--;
- this.tabIsLoaded = true;
+ this.$productTransmissionBus.$on(
+ "transmitClassified",
+ transmittedProducts => {
+ this.products.noticed = transmittedProducts.noticed;
+ this.products.unnoticed = transmittedProducts.unnoticed;
+ if (!this.tabIsLoaded) {
+ // tab이 stepper의 step 2에서 mount 되는 경우, 처음에 slidebar가 보이지 않는 버그를 해결
+ this.activeTab--;
+ this.tabIsLoaded = true;
+ }
}
- });
+ );
}
-}
+};
diff --git a/patent-calculator/src/components/ProductAdder.vue b/patent-calculator/src/components/ProductAdder.vue
index 39e5d00..9fa6cd5 100644
--- a/patent-calculator/src/components/ProductAdder.vue
+++ b/patent-calculator/src/components/ProductAdder.vue
@@ -161,7 +161,6 @@ export default {
},
addProducts() {
this.$submissionAlarmBus.$emit('submitProductsToBriefcase');
- // this.curStep++;
},
addForm() {
this.payloads.push({id:++this.formCount, _class:-1, searchingProducts:""});
diff --git a/patent-calculator/src/components/Quotation.vue b/patent-calculator/src/components/Quotation.vue
index 7a7c146..95633f7 100644
--- a/patent-calculator/src/components/Quotation.vue
+++ b/patent-calculator/src/components/Quotation.vue
@@ -1,139 +1,150 @@
-
-
-
-
-
-
- 견적내기
-
-
상표 출원 견적을 표시합니다.
-
-
-
-
-
- 검색단계
-
-
- 검색단계 대리인 수수료
-
- 기본료
- 1상표 {{numOfClasses}}개류
- {{검색단계대리인수수료.toLocaleString()}} 원
-
-
- 부가세
- 10%
- {{(검색단계대리인수수료 * 0.1).toLocaleString()}} 원
-
-
- 소계
- {{(검색단계대리인수수료 * 1.1).toLocaleString()}} 원
-
-
-
- 검색단계 합계
- {{검색단계비용.toLocaleString()}} 원
-
-
-
-
-
-
-
- 출원단계
-
-
- 출원단계 대리인 수수료
-
- 기본료
- 1상표 {{numOfClasses}}개류
- {{출원단계대리인수수료.toLocaleString()}} 원
-
-
- 부가세
- 10%
- {{(출원단계대리인수수료 * 0.1).toLocaleString()}} 원
-
-
- 소계
- {{(출원단계대리인수수료 * 1.1).toLocaleString()}} 원
-
-
- 출원단계 특허청 관납료
-
- 출원료
- 1상표 {{numOfClasses}}개류
- {{출원단계관납료.toLocaleString()}} 원
-
-
-
- 출원단계 합계
- {{출원단계비용.toLocaleString()}} 원
-
-
-
-
-
-
-
- 등록단계
-
-
- 등록단계 대리인 수수료
-
- 등록수수료
- 1상표 {{numOfClasses}}개류
- {{등록단계대리인수수료.toLocaleString()}} 원
-
-
- 부가세
- 10%
- {{(등록단계대리인수수료 * 0.1).toLocaleString()}} 원
-
-
- 소계
- {{(등록단계대리인수수료 * 1.1).toLocaleString()}} 원
-
-
- 등록단계 특허청 관납료
-
- 등록수수료
- 1상표 {{numOfClasses}}개류
- {{등록단계관납료.toLocaleString()}} 원
-
-
- 등록세
- 1건
- {{등록세.toLocaleString()}} 원
-
-
- 소계
- {{(등록단계관납료 + 등록세).toLocaleString()}} 원
-
-
-
- 등록단계 합계
- {{등록단계비용.toLocaleString()}} 원
-
-
-
-
-
-
-
-
- 출원에서 등록까지
-
- {{전체비용.toLocaleString()}} 원
-
+
+
+
+ 견적내기
+
+
+
+
+ 검색단계
+
+
+ 대리인 수수료
+
+ 기본료
+ 1상표 {{numOfClasses}}개류
+ {{검색단계대리인수수료.toLocaleString()}}원
+
+
+ 부가세
+ 10%
+ {{(검색단계대리인수수료 * 0.1).toLocaleString()}}원
+
+
+ 소계
+ {{검색단계비용.toLocaleString()}}원
+
+
+
+ 검색단계 합계
+ {{검색단계비용.toLocaleString()}}원
+
+
+
-
-
+
+
+ 출원단계
+
+
+ 대리인 수수료
+
+ 기본료
+ 1상표 {{numOfClasses}}개류
+ {{출원단계대리인수수료.toLocaleString()}}원
+
+
+ 부가세
+ 10%
+ {{(출원단계대리인수수료 * 0.1).toLocaleString()}}원
+
+
+ 소계
+ {{(출원단계대리인수수료 * 1.1).toLocaleString()}}원
+
+
+ 특허청 관납료
+
+ 출원료
+ 1상표 {{numOfClasses}}개류
+ {{출원단계관납료.toLocaleString()}}원
+
+
+ 소계
+ {{출원단계관납료.toLocaleString()}}원
+
+
+
+ 출원단계 합계
+ {{출원단계비용.toLocaleString()}}원
+
+
+
+
+
+
+ 등록단계
+
+
+ 대리인 수수료
+
+ 기본료
+ 1상표 {{numOfClasses}}개류
+ {{등록단계대리인수수료.toLocaleString()}}원
+
+
+ 부가세
+ 10%
+ {{(등록단계대리인수수료 * 0.1).toLocaleString()}}원
+
+
+ 소계
+ {{(등록단계대리인수수료 * 1.1).toLocaleString()}}원
+
+
+ 특허청 관납료
+
+ 등록수수료
+ 1상표 {{numOfClasses}}개류
+ {{등록단계관납료.toLocaleString()}}원
+
+
+ 등록세
+ 1건
+ {{등록세.toLocaleString()}}원
+
+
+ 소계
+ {{(등록단계관납료 + 등록세).toLocaleString()}}원
+
+
+
+ 등록단계 합계
+ {{등록단계비용.toLocaleString()}}원
+
+
+
+
+
+
+
+
+ 출원에서 등록까지
+ 합계 {{전체비용.toLocaleString()}}원
+
+
-
-
+
+
|